传递参数
获取参数
使用$n
获取参数
#!/bin/bash
main() {
echo "-----"
echo "当前文件名" $0
echo "-----"
echo "参数一" $1
echo "参数一" $2
echo "参数一" $3
echo "-----"
echo "所有变量" $*
echo "所有变量" $@
echo "-----"
echo "当前pid" $$
echo "后台最后一个进程的pid" $!
echo "最后命令的退出状态" $?
echo "-----"
}
main 'hello' 'world' '!'
-----
当前文件名 /Users/lcc/Desktop/test.sh
-----
参数一 hello
参数一 world
参数一 !
-----
所有变量 hello world !
所有变量 hello world !
-----
当前pid 57116
后台最后一个进程的pid
最后命令的退出状态 0
-----
特殊的参数
参数
说明
$#
当前的参数个数
$0
当前的文件名
$$
当前脚本的进程ID
$!
后台运行的最后一个进程的ID号
$*
以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$?
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
Last updated
Was this helpful?