我有一个 bash 脚本,replace.sh 包含以下内容:
ack-grep -a -l -i --print0 --text "$1" | xargs -0 -n 1 sed -i -e 's/$1/$2/g'
当我尝试运行它时,例如:
replace.sh 一些新的东西
提示返回没有错误,但没有对任何文件进行任何更改。如果我手动输入:
ack-grep -a -l -i --print0 --text "something" | xargs -0 -n 1 sed -i -e 's/something/somethingelse/g'
文件按预期更改。
这 $1 语法似乎适用于我编写的其他脚本。我猜我错过了与逃避 args 或其他什么有关的事情?
谢谢!
卢多。