我正在bash:中编写一个无限循环
while :
do
(whatever)
done
然而,当我尝试以这种方式插入"完成"行时,
vi -c "$s/$/rdoner/g" -c "w!" -c "q!"
我得到的是"$s/$/\rdone\r/g"不是一个编辑器命令。然而,当我在gvim时,这很好用。
有人知道为什么会发生这种事吗?我做错什么了吗?
只需将双引号替换为单引号:
vim yourfile -c '$s/$/rdoner' -c 'wq!'
bash首先解析双引号,尤其是$
符号的问题。
vi
是一种古老的工具。我没有它的副本,所以我不能在vi中测试你的命令,但如果我使用vim,你的命令对我来说很好。试着这样做:
vim file -c "$s/$/rdoner/g" -c "w!" -c "q!"
此外,作为旁注,w
和q
命令可以组合用于
vim file -c "$s/$/rdoner/g" -c "wq!"
并且全局标志(/g
)是不需要的,因为CCD_。
vim file -c "$s/$/rdoner" -c "wq!"
这应该更有效一点。