![这意味着什么 - 如果 [! -e“$exe”];然后在bash中](https://linux22.com/image/201346/%E8%BF%99%E6%84%8F%E5%91%B3%E7%9D%80%E4%BB%80%E4%B9%88%20-%20%E5%A6%82%E6%9E%9C%20%5B!%20-e%E2%80%9C%24exe%E2%80%9D%5D%EF%BC%9B%E7%84%B6%E5%90%8E%E5%9C%A8bash%E4%B8%AD.png)
我在linux下看到了一个脚本。我想知道这是什么意思。
if [ ! -e "$exe" ]; then
exe='/path to some file'
fi
答案1
运行info test
查看详情:
16.3.3 File characteristic tests
--------------------------------
These options test other file characteristics.
‘-e FILE’
True if FILE exists.
‘-s FILE’
True if FILE exists and has a size greater than zero.
‘FILE1 -nt FILE2’
True if FILE1 is newer (according to modification date) than FILE2,
or if FILE1 exists and FILE2 does not.
‘FILE1 -ot FILE2’
True if FILE1 is older (according to modification date) than FILE2,
or if FILE2 exists and FILE1 does not.
‘FILE1 -ef FILE2’
True if FILE1 and FILE2 have the same device and inode numbers,
i.e., if they are hard links to each other.
答案2
它的意思是“如果变量中的值exe
与文件系统中的现有名称不对应,则将其值设置为/path to some file
”。
该[ -e something ]
测试测试该名称是否something
作为常规文件、目录或其他类型文件的名称存在。
否定!
了测试的意义。
该if
语句评估给定它的命令(在本例中,命令是[ ! -e "$exe" ]
),如果该命令成功(在本例中,文件会执行不是存在),它执行语句体中的语句if
(在本例中,是对变量 的赋值exe
)。
[
您可以通过阅读或test
实用程序(man [
或)的手册来了解有关各种测试的更多信息man test
。
该if
语句在您的 shell 手册中进行了描述(例如man bash
)。该手册还将描述变量和变量分配。