【发布时间】:2012-05-07 01:03:10
【问题描述】:
这可能是一个非常愚蠢的问题,但是...如果 [ ! -n "$1" ],意思是,如果不超过一个参数...所以我知道它是如何工作的,但是-n 是什么,它是数字的缩写吗?
我一直在阅读 The Advanced Bash 编程指南,他们刚刚开始使用它。我试图找到它并想出它必须是一个“内置”默认参数。 Linux 中是否有显示默认参数的命令?
【问题讨论】:
标签: bash parameters
这可能是一个非常愚蠢的问题,但是...如果 [ ! -n "$1" ],意思是,如果不超过一个参数...所以我知道它是如何工作的,但是-n 是什么,它是数字的缩写吗?
我一直在阅读 The Advanced Bash 编程指南,他们刚刚开始使用它。我试图找到它并想出它必须是一个“内置”默认参数。 Linux 中是否有显示默认参数的命令?
【问题讨论】:
标签: bash parameters
test(又名[)的-n 参数表示“不为空”。您发布的示例的意思是“如果$1 不为空。这是说[ -z "$1" ];($1 为空)的迂回方式。
您可以通过help test了解更多信息。
$1 和其他 ($2, $3..) 是位置参数。它们是作为参数传递给您所在的脚本或函数的参数。例如,以./foo bar baz 运行名为foo 的脚本将导致$1 == bar、$2 == baz
【讨论】:
/test 确实是一个好的开始。
-n 是 字符串运算符 之一,用于评估 Bash 中的表达式。它测试它旁边的 string,如果 string 不为空,则将其评估为“True”。
位置参数 是一系列特殊变量($0、$1 到 $9),其中包含程序命令行参数的内容。 $0 包含程序的名称,其他包含我们传递的参数。
这里,如果传递给程序的第二个 位置 参数 ($1) 为 空 或(换句话说)如果除了$0,没有参数被传递给程序。
【讨论】: