我是 shell 脚本的新手,在下面的 shell 脚本中
#!/usr/bin/env sh
PREFIX=${PREFIX-/usr/local}
VERSIONS_DIR=$PREFIX/n/versions
test -d $VERSIONS_DIR || mkdir -p $VERSIONS_DIR
if test $# -eq 0; then
$# -eq 0
这个shell脚本是什么意思?
我是 shell 脚本的新手,在下面的 shell 脚本中
#!/usr/bin/env sh
PREFIX=${PREFIX-/usr/local}
VERSIONS_DIR=$PREFIX/n/versions
test -d $VERSIONS_DIR || mkdir -p $VERSIONS_DIR
if test $# -eq 0; then
$# -eq 0
这个shell脚本是什么意思?
$# = number of arguments. Answer is 3
$@ = what parameters were passed. Answer is 1 2 3
$? = was last command successful. Answer is 0 which means 'yes'
test
解释 -eq的手册页:
n1 -eq n2 True if the integers n1 and n2 are algebraically equal.
因此 test 将查看 -eq 前后的表达式并检查它们是否相等。
正如您在答案中提到的, $# 是脚本的参数数量,所以如果您运行
./your_script.sh foo bar
$# 将是 2
综上所述,如果您没有使用任何参数运行脚本,则该子句 (test $# -eq 0) 将返回 true