zsh使用踩坑

发布时间 2023-09-22 13:06:46作者: 秋来叶黄

zsh虽然和bash基本兼容,但是还有些区别,在使用时偶然出现,让人抓不到头脑。

中括号 []

中括号在zsh中是关键字,而在bash中不是。所以如果使用的命令中有中括号,需要转义

# 报错
tcprewrite --pnat=[2001:da8:8006::]:[2001:da8:8006:1::] --infile=a.pcap --outfile=b.pcap

# 正常
tcprewrite --pnat=\[2001:da8:8006::\]:\[2001:da8:8006:1::\] --infile=a.pcap --outfile=b.pcap

上面是把pcap包转ipv6地址的命令,ipv6地址需要用[]括起来,而在zsh下需要进行转义,不然会报错