常用的
内容提要
文章讨论了Bash脚本中的变量赋值和文件测试,包括如何为变量设置默认值,以及检查文件或目录是否存在。介绍了多种文件测试操作符的用法,如-d、-f、-e等,以帮助用户判断文件类型和状态。
关键要点
-
在Bash中,可以为变量设置默认值,使用语法 FOO="${VARIABLE:-default}",如果VARIABLE未设置或为空,则FOO将被赋值为'default',而VARIABLE的值保持不变。
-
使用语法 FOO="${VARIABLE:=default}",如果VARIABLE未设置或为空,则将其值设置为'default',然后FOO将被赋值为该值。
-
可以使用多种文件测试操作符来检查文件或目录的存在性和类型,包括:
-
- -b FILE:如果FILE存在且是特殊块文件,则为真。
-
- -c FILE:如果FILE存在且是特殊字符文件,则为真。
-
- -d FILE:如果FILE存在且是目录,则为真。
-
- -e FILE:如果FILE存在且是文件,无论类型如何,则为真。
-
- -f FILE:如果FILE存在且是常规文件(不是目录或设备),则为真。
-
- -G FILE:如果FILE存在且与运行命令的用户具有相同的组,则为真。
-
- -h FILE:如果FILE存在且是符号链接,则为真。
-
- -g FILE:如果FILE存在且设置了组ID(sgid)标志,则为真。
-
- -k FILE:如果FILE存在且设置了粘滞位标志,则为真。
-
- -L FILE:如果FILE存在且是符号链接,则为真。
-
- -O FILE:如果FILE存在且由运行命令的用户拥有,则为真。
-
- -p FILE:如果FILE存在且是管道,则为真。
-
- -r FILE:如果FILE存在且可读,则为真。
-
- -S FILE:如果FILE存在且是套接字,则为真。
-
- -s FILE:如果FILE存在且大小非零,则为真。
-
- -u FILE:如果FILE存在且设置了用户ID(suid)标志,则为真。
-
- -w FILE:如果FILE存在且可写,则为真。
-
- -x FILE:如果FILE存在且可执行,则为真。
延伸问答
如何在Bash中为变量设置默认值?
可以使用语法 FOO="${VARIABLE:-default}",如果VARIABLE未设置或为空,则FOO将被赋值为'default',而VARIABLE的值保持不变。
Bash中如何检查文件是否存在?
可以使用测试操作符,例如 -e FILE 来检查文件是否存在,无论类型如何。
Bash中如何判断一个文件是否是目录?
可以使用 -d FILE 操作符,如果FILE存在且是目录,则返回真。
在Bash中,如何为变量赋值并同时设置默认值?
使用语法 FOO="${VARIABLE:=default}",如果VARIABLE未设置或为空,则将其值设置为'default',然后FOO将被赋值为该值。
Bash中有哪些文件测试操作符?
常用的文件测试操作符包括 -f、-d、-e、-r、-w、-x 等,用于检查文件的存在性和类型。
如何检查一个文件是否可读?
可以使用 -r FILE 操作符,如果FILE存在且可读,则返回真。