解释这个bash脚本
有人能告诉我这个脚本会做什么吗?第三行的-z是什么解释这个bash脚本,bash,shell,unix,Bash,Shell,Unix,有人能告诉我这个脚本会做什么吗?第三行的-z是什么 Filename=File.txt X=`ls /home/$Filename` if [ -z "$X" ]; then exit fi 脚本所做的是 创建一个名为Filename的变量 Filename的值是File.txt 执行命令ls File.txt 将结果指定给变量X 然后检查变量X中的值的长度是否为零 如果为零,脚本将退出 所以基本上你的程序所做的就是检查文件是否存在 而不是你本可以使用的所有这些线条 if
Filename=File.txt
X=`ls /home/$Filename`
if [ -z "$X" ]; then
exit
fi
脚本所做的是 创建一个名为Filename的变量 Filename的值是File.txt 执行命令ls File.txt 将结果指定给变量X 然后检查变量X中的值的长度是否为零 如果为零,脚本将退出 所以基本上你的程序所做的就是检查文件是否存在 而不是你本可以使用的所有这些线条
if [ -a "$Filename"]
此链接将对您有所帮助
它测试/home/File.txt是否存在,如果不存在,则退出。但这不是一个理想的解决方案,最好这样写:
if ! test -e /home/File.txt; then exit; fi
$Filename变量现在的值为File.txt
$X变量现在包含命令ls/home/File.txt的输出。如果文件存在,它将包含一些内容,否则它将是一个空字符串
if [ -z "$X" ]; then
如果变量$X的值为空字符串,表示/home/File.txt不存在,否则$X将包含某些内容,则:
exit
fi
这是一种相当尴尬的写作方式:
if ! [ -e "/home/File.txt" ]; then exit; fi
-如果路径存在,则返回true。您还可以检查文件-f、目录-d、符号链接-L等。查看man[了解更多可与[]一起使用的选项。您还可以在那里找到-z:
-如果字符串长度为零,则z字符串为True
那么这是一种测试文件的存在吗?你应该表现出更多的研究努力
if [ -z "$X" ]; then
exit
fi
if ! [ -e "/home/File.txt" ]; then exit; fi