而在 bash 脚本中



我正在制作一个bash脚本。 目标是:执行程序 等待几秒钟重置程序并重复该过程。我制作了 2 个脚本,但我不知道错误在哪里......

 #!/bin/bash
while true; 
do 
seg=`date +%M`;
if [[ "$seg" -eq "30" ]]; 
then killall sox;
echo "reset"; 
fi
done

bash: error sintáctico cerca del elemento inesperado ';'

#!/bin/bash
while true;
do
nice -n-10 sox -q -V0 --multi-threaded -t alsa hw:2,0 -t alsa pcm.default && 
done

bash: error sintáctico cerca del elemento inesperado 'done'

脚本 #1 的问题:

;表示法是在同一行上一个接一个地运行多个命令。Bash 语法要求 whiledo 在不同的行上(与 if ...then 相同,如果在同一行上,则用 ; 分隔。命令语句通常不会以 bash 中的;字符结尾。

将代码从以下位置更改:

#!/bin/bash
while true; 
do 
seg=`date +%M`;
if [[ "$seg" -eq "30" ]]; 
then killall sox;
echo "reset"; 
fi
done

自:

#!/bin/bash
while true
do 
    seg=`date +%M`
    if [[ "$seg" -eq "30" ]]; then
        killall sox
        echo "reset"
    fi
done

脚本 #2 的问题:

&表示将命令作为后台进程运行。 &&用于条件命令链接,如:"如果&&之前的上一个命令成功,则运行&&之后的下一个命令"

更改自:

#!/bin/bash
while true;
do
nice -n-10 sox -q -V0 --multi-threaded -t alsa hw:2,0 -t alsa pcm.default && 
done

自:

#!/bin/bash
while true
do
    nice -n-10 sox -q -V0 --multi-threaded -t alsa hw:2,0 -t alsa pcm.default &
done

相关内容

  • 没有找到相关文章

最新更新