LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 634|回复: 3

在script下有见过这种格式?

[复制链接]
发表于 2004-5-1 01:29:55 | 显示全部楼层 |阅读模式
bash-2.04$ cat convnames
#!/bin/bash
#
#
#
#
#
fatal() {                                                  <-- 1
    echo "$(basename $0): ERROR: $*" >&2                   <-- 2
    exit 1
}
usage() {                                                  < -- 3
    echo "Usage: $(basename $0) -f file -k key_field" >&2  <-- 4
}

if [ $# -eq 0 ]; then
    # interactive mode
    echo -n "Enter the filename:" >&2
    read file
   
    echo -e "Enter the field number:\c" >&2
    read key

else

    if [ $# -ne 4 ]; then
        usage
        fatal "incorrect number of arguments"
    fi
    if [ "$1" != "-f" ]; then
        usage
        fatal "first argument must be -f"
    fi
    file=$2
    if [ "$3" != "-k" ]; then
        usage
        fatal "third argument must be -k"
    fi
    key=$4
fi
if [ ! -f "$file" -o ! -r "$file" ]; then
    usage
    fatal "'$file' must be a readable file"
fi
if ! echo "$key" | grep -Eq '^[[:digit:]]+$'; then
    usage
    fatal "'$key' must be an integer > 0"
fi
if [ "$key" -eq 0 ]; then
    usage
    fatal "'$key' must be an integer > 0"
fi

BIGTEMP=$$.tmp1
LASTNAME=$$.tmp2
FIRSTNAME=$$.tmp3
cut -d: -f "$key" "$file" > $BIGTEMP
cut -d, -f1 $BIGTEMP > $LASTNAME
cut -d, -f2 $BIGTEMP > $FIRSTNAME

paste -d' ' $FIRSTNAME $LASTNAME

rm $BIGTEMP $FIRSTNAME $LASTNAME



bash-2.04$



请问<--- 1,2,3,4 是什么意次?
 楼主| 发表于 2004-5-1 01:32:44 | 显示全部楼层
fatal() {
echo "$(basename $0): ERROR: $*" >&2
exit 1
}
usage() {
echo "Usage: $(basename $0) -f file -k key_field" >&2
请问上面的是什么意次?

<--- 1,2,3,4  是我自己加上去的,目的是让大家注意到那几lines
发表于 2004-5-1 01:44:01 | 显示全部楼层
最初由 shaoping 发表
fatal() {
echo "$(basename $0): ERROR: $*" >&2
exit 1
}
usage() {
echo "Usage: $(basename $0) -f file -k key_field" >&2
请问上面的是什么意次?

<--- 1,2,3,4  是我自己加上去的,目的是让大家注意到那几lines

这是一种在脚本中定义一个函数的常用方法.
usage() {
echo "Usage: $(basename $0) -f file -k key_field" >&2
}
#这是一个提示使用格式的小函数,如果你的脚本名是abc的话
那这个调用usage这个函数时候就显示:
Usage:abc -f file -k key_field

  1. 在命令行下,同样可以定义一个函数,如:
  2. /home/javalee#fun () { date; } #fun:函数名.():是格式 { date;} :是要执行的命令
  3. /home/javalee#typeset -f fun #查看函数fun已经在当前环境中了
  4. fun() {
  5.     date
  6. }
  7. /home/javalee#fun #执行fun得到即结果
  8. 六  5月  1 02:00:28 CST 2004
  9. /home/javalee#
复制代码
 楼主| 发表于 2004-5-1 04:56:39 | 显示全部楼层
谢谢,thanku very much.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表