0
让我从我正在尝试做的事开始。
我有一个sed语句来查找特定行,然后更改它下面的行。为此,我首先删除它下面的行并追加我想要的行。通过给出未终止替换模式的函数执行sed
sed -e '/'"$rootline"'/ {N;s/\n.*//;}' -e '/'"$rootline"'/ a\
'"$1 $linetoadd" <tmpmain >tmpsec
这里第一个表达式在$ rootline中找到一个带有表达式的行,然后删除下一行。表达式2在$ lineline后添加我想添加的行。
以前我把它放在一个单独的.sh文件中,当我用sudo调用文件(在文件中使用sudo对其他重要操作进行操作)时,它可以很好地工作。
现在我试图把它放在一个函数中,并通过相同的.sh文件调用它。用sudo调用函数我使用这个answer。一切似乎是工作的罚款与问候的功能的sudo的一部分,但是当它涉及到上述指定的SED操作,我得到以下
sed: 1: "/root ALL=/ {N;s/
.*//;}
": unterminated substitute pattern #$rootline='root ALL='
为什么我收到此错误的任何线索?
注:我工作的Mac OS X