Bash调用两个bash脚本

时间:2017-04-25 21:52:07

标签: 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之后,如果不删除其进程,则不会执行下一行。

我怎么能意识到它?

P.S。 start_ap.sh启动hostapd,这就是为什么它需要为下次执行查杀的原因。

1 个答案:

答案 0 :(得分:1)

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

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