首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >而在bash脚本中

而在bash脚本中
EN

Stack Overflow用户
提问于 2012-11-23 08:26:29
回答 1查看 1.1K关注 0票数 0

我正在写一个bash脚本。目标是:执行一个程序,等待几秒钟,重置程序,然后重复这个过程。我写了两个脚本,但我不知道哪里出了错…

代码语言:javascript
复制
 #!/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 `;‘

代码语言:javascript
复制
#!/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’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-23 08:32:08

脚本#1的问题:

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

将您的代码更改为:

代码语言:javascript
复制
#!/bin/bash
while true; 
do 
seg=`date +%M`;
if [[ "$seg" -eq "30" ]]; 
then killall sox;
echo "reset"; 
fi
done

至:

代码语言:javascript
复制
#!/bin/bash
while true
do 
    seg=`date +%M`
    if [[ "$seg" -eq "30" ]]; then
        killall sox
        echo "reset"
    fi
done

脚本#2的问题:

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

更改自:

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

至:

代码语言:javascript
复制
#!/bin/bash
while true
do
    nice -n-10 sox -q -V0 --multi-threaded -t alsa hw:2,0 -t alsa pcm.default &
done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13521723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档