Bash 脚本更改 lighttpd 端口

Bash 脚本更改 lighttpd 端口

好吧,另一个问题。我正在编写一个脚本来获取端口,然后替换它以将其放入配置文件中。例如。

如果我执行此命令...(cat /var/log/lighttpd/access.log | tail -1) 并且最后一行是一个数字 12。然后我想要 (sed -i 's/ 8162/81 ??????/' /etc/lighttpd/lighttpd.conf) 将 cat (/var/log/lighttpd/access.log | tail -1) 输出的端口 8162 替换为 /8112 是 12。基本上它抓取输出 12 然后创建新的端口 8112...我该怎么做,创建一个变量还是什么? awk 有用吗?或者也许我应该做一些连续的事情。我不知道。有什么想法或想法吗???

答案1

试试这个方法:

  1. 捕获12变量:var=$(cat /var/log/lighttpd/access.log | tail -1),然后
  2. 将其放入sed命令中:

    sed -i.bak "s/8162/81$var/" /etc/lighttpd/lighttpd.conf
    

    或者

  3. cat立即将命令行添加到 sed,如下所示:

    sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
    

警告:

  1. 始终创建备份,以防此语法出现问题:

    sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
    
  2. 请注意"使用的双引号,如果没有双引号,命令将不会处理您的变量或$(cat /var/log/lighttpd/access.log | tail -1)

相关内容