我目前正在研究一个文本转语音项目,我需要编写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
答案 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
允许您移动到目录并返回。