我正在创建一个脚本,该脚本检查用户输入的内容,并根据该值在文件中进行替换。
到目前为止我已经(但它不起作用):
#!/bin/bash
read -p "Type your domain: " domain
sed -i -e /\$put\_your\_domain =/ s/= .*/= ${domain}/ /list_of_domains
echo cat list_of_domains | grep '$put_your_domain'
输出:
./t.sh
Type your domain: GOV
sed: -e expression #1, char 17: unterminated address regex
正如您所看到的,我想用任何域类型替换该域。例如,我们有:
$put_your_domain = JUS
我想将“list_of_domains”中的它替换为$put_your_domain = GOV
,最后回显它。
答案1
$ grep '$put_your_domain' list_of_domains
$put_your_domain = JUS
$ domain=GOV
$ sed -Ei 's/(\$put_your_domain = ).*/\1'"$domain"'/' list_of_domains
$ grep '$put_your_domain' list_of_domains
$put_your_domain = GOV
要了解 shell 中的引号,请参阅https://mywiki.wooledge.org/Quotes。