找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 56|回复: 6

bash 的 if 條件

[复制链接]

94

主题

790

回帖

1978

积分

金牌会员

积分
1978
发表于 2019-3-15 14:23:18 | 显示全部楼层 |阅读模式
本帖最后由 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 兩個併在一起?
(因為兩個條件要做的事是一樣的,不想多重複一次條件)
回复

使用道具 举报

12

主题

729

回帖

1510

积分

金牌会员

积分
1510
发表于 2019-3-15 14:27:03 | 显示全部楼层
楼主为什么要用繁体字。。。。。
回复

使用道具 举报

94

主题

790

回帖

1978

积分

金牌会员

积分
1978
 楼主| 发表于 2019-3-15 14:33:43 | 显示全部楼层
那不然我改用英文寫?
回复

使用道具 举报

21

主题

406

回帖

945

积分

高级会员

积分
945
发表于 2019-3-15 14:39:12 | 显示全部楼层
中间的】【不应该有
回复

使用道具 举报

94

主题

790

回帖

1978

积分

金牌会员

积分
1978
 楼主| 发表于 2019-3-15 14:41:43 | 显示全部楼层
把 -ne 旁的 ] 跟 [ 拿掉,還是一樣的問題
回复

使用道具 举报

94

主题

790

回帖

1978

积分

金牌会员

积分
1978
 楼主| 发表于 2019-3-15 15:46:26 | 显示全部楼层
我上網查了一下,

elif  的 [ ] 都拿掉,改成

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

就行了...

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

使用道具 举报

35

主题

325

回帖

775

积分

高级会员

积分
775
发表于 2019-3-15 16:23:39 | 显示全部楼层
"

哈哈 繁体字我喜欢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-4-20 01:28 , Processed in 0.018389 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表