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