我有以下脚本:
#!/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/