我创建了一个 bash 脚本:
#!/bin/bash
su root -c vim $1 -c ':%s/^M//g' -c 'wq'
我的脚本必须删除文件中的所有 ^M(Windows 上的回车符),然后保存。
当我执行我的脚本时,它返回:
/sequenceFiles/Sequence1.seq: wq: command not found
有人知道为什么吗?谢谢你的帮助。
-c
is seen by , su
not vim
,并且 shell 抱怨未知命令。
您需要将命令作为一个参数传递给su
:
su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"
man su
说:
`-c COMMAND'
`--command=COMMAND'
Pass COMMAND, a single command line to run, to the shell with a
`-c' option instead of starting an interactive shell.
尝试
su root -c "vim $1 -c ':%s/^M//g' -c 'wq'"
虽然你可以用 vim 来做,但考虑更简单:
perl -pi -e 's/\r\n/\n/' file