无法理解这个脚本

无法理解这个脚本

有人能帮我理解这个脚本吗?它来自 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 "

相关内容