新建一个shell脚本
mkdir test vim test.sh
脚本内容
echo "whats your name?" # read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出 read PERSON echo "Hello, $PERSON" #简单使用循环 for kill in app java c++ do echo "I am good at ${kill}" done #特殊变量 echo $$ echo "文件名称:$0" echo "第一个参数:$1" echo "第二个参数:$2" echo "所有引用值:$@" echo "所有引用值:$*" echo "参数总数:$#" #$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" #… "$n" 的形式输出所有参数。 #执行 ./test.sh "a" "b" "c" "d"后 echo "\$*="$* echo "\$@="$@ #$? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。成#功是0 echo "上一个命令的退出状态:$?" echo "print each param from \$*" for var in $* do echo "$var" done echo "print each param from \$@" for var in $@ do echo "$var" done echo "print each param from \"\$*\"" for var in "$*" do echo "$var" done echo "print each param from \"\$@\"" for var in "$@" do echo "$var" done
注意$*和$@
当被双引号包围时候"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。