shell之输入参数

在 shell 脚本中如何得到一些程序外部的变量呢?通过输入参数可以实现这个步骤,如下:
./test.sh -f config.conf -v --prefix=/home

这是随便写的一个示例,没有任何实际意义。

 test.sh 中通过什么方式获取到 config.conf   /home 这些参数,然后做不同的处理呢?

$0 : ./test.sh,即命令本身,相当于C/C++中的argv[0]
$1 : -f,第一个参数.
$2 : config.conf
$3, $4 ... :类推。
$# : 参数的个数,不包括命令本身,上例中$#为4.
$@ :参数本身的列表,也不包括命令本身,如上例为 -f config.conf -v --prefix=/home
$* :和$@相同,但"$*" 和 "$@"(加引号)并不同,"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组。
可以用下面的这个程序来详细看看 $* $@ 的值:
#!/bin/bash

# 输出 $*
for arg in "$*"
do
    echo $arg
done

# 输出 $@
for arg in "$@"
do
    echo $arg
done
更多内容可参考:Bash Shell中命令行选项/参数处理


标签: shell, 参数

18
Feb 2010
AUTHOR WiFeng
CATEGORY Web
COMMENTS No Comments

添加新评论 »

   点击刷新验证码