linux - Bash 调用两个 bash 脚本

标签 linux bash shell

我有以下脚本:

#!/bin/bash

if [ "$EUID" -ne 0 ]
  then
    echo '' 
    echo 'Please run the script as root'
    echo ''
  exit
fi

for run in {1..11}
do
    sudo ./start_ap.sh    
    sleep 10    
    sudo ./tst.sh

done 

问题是执行后

sudo ./start_ap.sh

不会执行下一行,因为 sudo ./start_ap.sh 行需要 CTRL+C 停止,然后才会执行下一行。

但是,我希望 sudo ./start_ap.sh 将在 sudo ./tst.sh 之后终止,并在下一步重复 11 次。

到目前为止,sudo ./start_ap.sh 执行后,如果不杀死其进程,则不会执行下一行。

如何实现?

附言start_ap.sh 启动 hostapd,这就是为什么它需要为下一次执行而被杀死。

最佳答案

您需要在后台运行./start_ap.sh,然后在./tst.sh 完成后将其终止。请注意,如果您实际上以 root 身份运行脚本,则无需在脚本中使用 sudo

for run in {1..11}; do
    ./start_ap.sh & pid=$!
    sleep 10
    ./tst.sh
    kill "$pid"
done

关于linux - Bash 调用两个 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43621597/

相关文章:

linux - 在 bash 脚本中设置日期

ruby-on-rails - 从Docker容器中管理Capistrano部署的SSH key

macos - 升级到 Mac OS 10.9.3 后 Bash 无法识别 go

bash - sh -c : Unterminated quoted string error in groovy call

linux - shell脚本中top命令特殊字符

linux - 找到一个模式并替换

linux - 无法弄清楚如何在 bash 循环中执行算术 (for)

linux - 如何在 Linux 中查找、复制和重命名文件?

linux - 这个 Bash 命令中的 `! -d` 是什么意思?

linux - AWS 参数存储 - 如何在 Node App 中使用 Linux 访问值