0
当我比较字符串我收到以下错误使用比较空白的变量,如果声明
[: !=: unary operator expected
下面空白的变量是我的脚本
if [ $monthlystatus = Completed ];then
command x
线当我尝试改变这种如下
if [ "$monthlystatus" = Completed ];then
command x
它不给我预期的结果,即如果语句给我错误的结果。 例如,当我使用双引号,甚至变量monthlystatus的值等于Completed,但仍然不执行命令x。
以下是真实的代码。
if [ $monthlystatus != Failed ] && [ $monthlystatus != Aborted ];then
cat /home/a-hkataria/objectstatus_filesystem2.txt /home/a-hkataria/objectstatus_filesystem3.txt > /home/a-hkataria/objectstatus_filesystem4.txt
awk '$2 = $2 FS "Yes"' /home/a-hkataria/objectstatus_filesystem4.txt
else
cat /home/a-hkataria/objectstatus_filesystem2.txt /home/a-hkataria/objectstatus_filesystem3.txt > /home/a-hkataria/objectstatus_filesystem4.txt
awk '$2 = $2 FS "No"' /home/a-hkataria/objectstatus_filesystem4.txt
fi
所以,如果变量monthlystatus
是空白的它给我的错误,当我使用双引号,即使变量的值是Completed
但仍然没有在第二列显示yes
。
“不工作” 是没有问题的描述。请阅读[mcve]。 – melpomene
给出一个示例 –
这不是一个示例(它不完整或可验证)。显示真实的代码。 – melpomene