我正在为考试学习 shell 脚本,在我们的教师书中,他在一个地方写了以下示例:
# This script expects a folder path as an argument.
cd $1
if [ $? -ne 0 ]; then echo "Folder not found"; exit 1; fi
然而,在另一个例子中,他写道:
# This script expects one argument
if [ "$#" -ne 1 ]; then echo "Missing Parameter"; exit 1; fi
现在,我什么时候必须将经过测试的参数放在双引号中的方括号内,什么时候不需要?
我的意思是,美元?在这种情况下代表一个数字。但是,此示例中的 $# 也表示数字而不是字符串(尽管一切都是字符串)。但是为什么 $# 双引号和 $? 不是?