解释

解释

在 /home/scrript 下,我们有 187 个 bash 脚本,所有脚本都有以下行:

kill -PIPE $PID 

我们要在所有脚本的这一行之前添加以下单词,如下所示

[[ $KILL_STATUS = YES ]] && kill -PIPE $PID 

这样做的原因是避免编辑每个脚本,并使用 Linux 命令如 sed 一次性完成所有脚本,

答案1

$ for i in /home/scrript/*; do sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i"; done

解释

  • for i in /home/scrript/*; do FOO; done:对 中的所有文件重复此操作/home/scrript。注意,根据您的 shell 配置,这可能会跳过点文件。
  • sed -i 's/kill -PIPE $PID/[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID/' "$i":对于每个文件 ( "$i"),替换“就地”( sed -i),替换kill -PIPE $PID[[ $KILL_STATUS = YES ]] \&\& kill -PIPE $PID. (注意,您需要转义,&因为否则它们有特殊含义。

相关内容