在特定位置执行命令,具体取决于上一个命令的答案

时间:2018-02-01 14:14:38

标签: linux bash

我目前正在研究一个文本转语音项目,我需要编写bash脚本,当它被调用时,将执行两个命令。如果第一个命令返回正确的答案(如果完全返回答案),则将调用并执行第二个命令。

我的问题是,如何编写一个脚本,在特定的某个文件系统位置执行shell命令?

例如,我需要在目录/opt/text/example中执行此命令:

sudo ./bin/sample_read -I ../languages/ -I ../languages -v dave -T 2 \
    -i /opt/text/example.txt -F 22 -O embedded-pro -o out_file.pcm

然后等待答案,然后(如果好)执行第二个命令。

第二个命令是

aplay -f S16_LE -r 22050 -c 1 out_file.pcm

1 个答案:

答案 0 :(得分:2)

这应该有所帮助:

pushd /path/to/directory
my_var=$(command1)
if [ "$my_var" == "expected_result" ]; then
  command2
fi
popd

您基本上运行command1并将其输出存储在my_var中。然后,将$my_var的内容与您期望的内容进行比较。

同样pushd <path> / popd允许您移动到目录并返回。