ghost 发表于 2019-3-15 14:23:18

bash 的 if 條件

本帖最后由 ghost 于 2019-3-15 14:33 编辑

我想寫一個 if 來對檔案做處理,

如果.

file a 不存在或 file a 跟 file a1 不一樣,就用 a1 蓋掉 a

如果

file a 跟 file a1 內容一樣,就刪掉 a1

因為用 diff 或 cmp 好像無法單純做到比較兩檔案內容是否一樣,所以我想用 md5sum,
但會出現 too many arguments 的錯誤

if [ ! -f /root/$code.temp ] # 正常

elif [ `md5sum "/root/$code.temp"` ] -ne [ `md5sum "/root/$code.temp1"` ] # [: too many arguments

請問 elif 裡的條件式該怎麼改才行?

然後我應該怎麼把 if 跟 elif 兩個併在一起?
(因為兩個條件要做的事是一樣的,不想多重複一次條件)

titanic 发表于 2019-3-15 14:27:03

楼主为什么要用繁体字。。。。。

ghost 发表于 2019-3-15 14:33:43

那不然我改用英文寫?

allnetstore 发表于 2019-3-15 14:39:12

中间的】【不应该有

ghost 发表于 2019-3-15 14:41:43

把 -ne 旁的 ] 跟 [ 拿掉,還是一樣的問題

ghost 发表于 2019-3-15 15:46:26

我上網查了一下,

elif的 [ ] 都拿掉,改成

elif ! cmp -s /root/$code.temp /root/$code.temp1

就行了...

但還沒搞懂為什跑指令的話, [ 跟 ] 要拿掉

hihelllo 发表于 2019-3-15 16:23:39

"
哈哈 繁体字我喜欢
页: [1]
查看完整版本: bash 的 if 條件