什么 - 在Bash中意味着什么

时间:2012-05-07 01:03:11

标签: bash parameters

这可能是一个非常愚蠢的问题,但是......如果[! -n" $ 1" ],意思是,如果不超过1个参数那么......所以我得到它是如何工作的但是-n它是数字的缩写? 我一直在阅读高级bash编程指南,他们刚刚开始使用它,我试图找到它并想​​出它必须是一个内置的"默认参数,第二个问题是在Linux中显示默认参数的命令。

2 个答案:

答案 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以外的程序。