这可能是一个非常愚蠢的问题,但是......如果[! -n" $ 1" ],意思是,如果不超过1个参数那么......所以我得到它是如何工作的但是-n
它是数字的缩写?
我一直在阅读高级bash编程指南,他们刚刚开始使用它,我试图找到它并想出它必须是一个内置的"默认参数,第二个问题是在Linux中显示默认参数的命令。
答案 0 :(得分:11)
-n
的{{1}}参数(又名test
)表示“不为空”。您发布的示例意味着“如果[
不是空的。这是一种迂回的说法$1
([ -z "$1" ];
为空)。
您可以使用$1
了解详情。
help test
和其他人($1
,$2
..)是位置参数。它们是作为您所在的脚本或函数的参数传递的内容。例如,将名为$3
的脚本作为foo
运行将导致./foo bar baz
,$1 == bar
答案 1 :(得分:0)
-n
是用于评估bash中表达式的字符串运算符之一。它测试它旁边的字符串,如果 string 非空,则将其评估为“True”。
位置参数是一系列特殊变量($0
,$1
到$9
),包含程序命令行参数的内容。
$0
包含程序的名称,其他包含我们传递的参数。
此处,如果传递给程序的第二个位置参数([ ! -n "$1" ]
)为空或(在其他情况下)$1
评估为“True”如果没有参数传递给$0
以外的程序。