我有一个用 vim 创建的 shell 脚本。我唯一知道的就是一个 var 名称。
在文档的某处有一行:
SecondHome='/Users/me/Documents/code/'
this 的值是不正确的,但是通过 shellscripts 执行新功能而不改变 shell script 的作用。
我正在考虑做类似的事情:
grep -n "SecondHome" somefile.sh
这将吐出行号+匹配项,但只更改第一个,因为那是变量定义。
我当时正在考虑以某种方式对该行进行替换以使其看起来像:
export SecondHome=$DirPath/code/$Repo
然后运行已修改的脚本文件。
#!/bin/zsh
export DirPath=/Users/me/Documents/
export Repo=MyNewRepo/
export LineNumber=$(grep -n "SecondHome" somefile.sh)
#carry out replace on somefile.sh at $LineNumber with: export SecondHome=$DirPath/code/$Repo/
. ./somefile.sh
这可能吗?