什么 - 在Bash中意味着什么

UNE*_*ECS 6 parameters bash

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

Dae*_*yth 11

(又名)的-n论点意味着"不是空的".你发布的例子意味着"如果不是空的话.这是一种迂回的说法(是空的).test[$1[ -z "$1" ];$1

你可以了解更多help test.

$1和其他($2,$3..)是位置参数.它们是作为您所在的脚本或函数的参数传递的内容.例如,运行一个名为fooas 的脚本./foo bar baz会导致$1 == bar,$2 == baz

  • 也可以在bash联机帮助页中找到。/ test确实是一个不错的开始。 (2认同)

小智 11

-n是用于计算 Bash 中表达式的字符串运算符之一。它测试旁边的字符串,如果字符串非空,则将其评估为“True”。

位置参数是一系列特殊变量($0$1$9),其中包含程序的命令行参数的内容。$0包含程序的名称,其他包含我们传递的参数。

此处,如果传递给程序的第二个位置参数 ( ) 为,或者(换句话说)如果除了 之外没有任何参数传递给程序,则计算结果为[ ! -n "$1" ]“True” 。$1$0