谁能告诉我这个脚本会做什么?什么是第3行的-z?
Filename=File.txt
X=`ls /home/$Filename`
if [ -z "$X" ]; then
exit
fi
Run Code Online (Sandbox Code Playgroud)
Filename=File.txt
Run Code Online (Sandbox Code Playgroud)
该$Filename
变量现在拥有的价值File.txt
.
X=`ls /home/$Filename`
Run Code Online (Sandbox Code Playgroud)
该$X
变量现在包含指令的输出ls /home/File.txt
.如果文件存在,它将包含一些内容,否则它将是一个空字符串.
if [ -z "$X" ]; then
Run Code Online (Sandbox Code Playgroud)
如果变量的值$X
是空字符串(意味着/home/File.txt
不存在,否则$X
将包含某些内容),则:
exit
fi
Run Code Online (Sandbox Code Playgroud)
这是一种非常尴尬的写作方式:
if ! [ -e "/home/File.txt" ]; then exit; fi
Run Code Online (Sandbox Code Playgroud)
-e
如果路径存在,则返回true.您还可以检查文件(-f
),目录(-d
),符号链接(-L
)等.查看man [
可以使用的更多选项[
.你也会在-z
那里找到:
-z string
如果长度string
为零,则为真.