BASH 脚本中的“null”运算符有什么用?我理解,if
当您没有什么可说的,但需要一个命令来让程序正常运行时,它会用作命令后面的占位符。但它的整体用途是什么?你什么时候会使用它?什么时候使用它有意义?
答案1
允许参数扩展的副作用发生有时很有用。
例如,设置默认值
read -p "Enter your name: " name
: ${name:=John Doe} # if the user entered an empty string
echo "$name"
答案2
您还可以将其用于无限循环:
while : ; do
# ....
done
答案3
您可以使用它来创建文件而无需运行程序::
: > /path/to/file
touch /path/to/file
这比(因为它不需要运行程序)快得多,touch
而且可能比普通的更易于移植
> /path/to/file
似乎适用于许多系统。同样,它可以用来检查您是否具有文件的写权限:
if { : >> /path/to/file;} 2> /dev/null
then
echo "writeable"
else
echo "write permission denied"
fi
虽然这通常也可以在没有的情况下完成:
。注意事项:
- 此命令不会检查文件是否已存在。如果不存在,则将创建该文件(前提是具有创建文件的权限)。
- 如果该文件不存在,并且您的脚本没有权限创建它,则会报告“写入权限被拒绝”。
(请参阅链接问题以了解为什么这比更可靠的原因if [ -w /path/to/file ]
。)
答案4
if
当你只想执行负面操作时,可以在命令的正面测试中使用它。例如:
if [[ True == False ]]; then
:
else
echo "true <> flase"
fi
如果没有:
bash 就会产生语法错误。
这是一个过于简单的例子。通常,当您尚未编写该代码段并且只需要一些不会产生错误的东西时,您会在初步编码中使用这种技术。