有人能帮我理解这个脚本吗?它来自 sysconf_add,我是脚本新手。
我需要做一些类似的事情。
function add_word() {
local word=$1
local word_quoted=$2
if ! word_present; then
$debug && cp $file $tmpf
sed -i -e "${lineno} {
s/^[[:space:]]*\($var=\".*\)\(\".*\)/\1 $word_quoted\2/;
s/=\" /=\"/
}" $file
$debug && diff -u $tmpf $file
else
echo \"$word\" already present
fi
# some balancing for vim"s syntax highlighting
}
答案1
这是一个很好的资源sed
对于上面的例子:
- 该
-i
标志表示“就地编辑”(仅限 GNU sed),这是$file
就地编辑 - 该
-e
标志将多个命令链接在一起。 - 示例中的第一个命令看起来正在用
$var="<stuff>"
传递给脚本的第二个参数替换实例。 - 第二条命令删除序列后面的尾随空格
="
(例如foo=" bar "
变成foo="bar "
)