Title here
Summary here
上一个命令或脚本的退出码,0 成功,非 0 失败。
ls 404
echo $?
会输出 2,表示失败。脚本中可用 exit
指定返回码。
表示传递给脚本或函数的参数个数。
#!/usr/bin/env bash
echo $#
./foo p1 p2
2
传递给脚本的所有参数,默认以空格分隔。
#!/usr/bin/env bash
echo $*
./foo p1 p2p3
p1 p2p3
分隔符可以通过 IFS
变量修改。
传递给脚本的所有参数,默认以空格分隔。
#!/usr/bin/env bash
echo $@
./foo p1 p2p3
p1 p2p3
分隔符可以通过 IFS
变量修改。
主要区别在处理带有空格的参数。
$*
:代表的是所有参数的字符串,是一个整体。$@
:$*
是一样的。"$@"
,表示参数数组,每个参数是独立的。# 假设传递的参数是 "arg1" "arg2 with space" "arg3"
for arg in "$@"; do
echo "Argument: $arg"
done
# 将所有参数传递给另一个脚本
another_script "$@"
当前脚本的进程 ID。
echo $$
最近在进程后台运行的进程 ID。
echo $!
当前脚本名称。
echo $0
-bash
第 n 个参数。
#!/usr/bin/env bash
echo $1
./foo a b c
a
脚本的选项。
echo $-
himBHs
上面是当前 Shell 的启动选项。