2017-07-07 82 views
-3

什么是if [[ -z $1 ]]声明在这里完全检查?在bash脚本中使用这个。

每当我运行它输出这样的:

[根@本地〜]#SH script.sh

没有给出参数

#!/bin/bash 

if [[ -z $1 ]]; then 

echo "No argument is given" 


elif [ "$1" == "testfile" ] ; then 

echo "Right argument is given" 

else 

echo "Wrong argument is given" 

fi 
+2

什么时候人们终于开始简单地读取他们所使用的工具的文档? – arkascha

回答

3

man bash

[[ expression ]] 

返回取决于条件表达式的评估

和下面进一步

-z string 

真,如果字符串的长度为零0或1的状态。

-3

$#变量会告诉您脚本传递的输入参数的数量。

或者你可以检查如果有一个参数为空字符串或不喜欢:

if [ $# -eq 0 ] 
    then 
    echo "No arguments supplied" 
fi 
+0

问题中没有提及传递参数的数量,'$ 1'可以是没有'$#'为0的空字符串。 – chepner