嗨,大家好!谁能告诉我什么"如果[$#-ne 1]"表示在shell脚本中?

时间:2018-02-22 15:38:07

标签: shell unix

我一直试图找出以下代码行: 如果[! -e $ 1] 感谢

1 个答案:

答案 0 :(得分:0)

让我们分解:

  • $#是剩余参数的数量
  • [test命令
  • -ne是数字“not equals”运算符。

所以if [ $# -ne 1 ]正在测试是否只有一个参数(左)。

在你的第二个例子中:

  • !表示不是
  • -e测试文件是否存在
  • $1是第一个剩下的论点

因此if [ ! -e $1 ]测试没有文件或目录的路径作为第一个(剩余)参数给出。

请注意,如果参数是包含空格或全局元字符的路径名,则可能会失败。需要引用来阻止单词拆分和通配可能会破坏路径名;即if [ ! -e "$1" ]