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



我目前正在处理一个文本到语音转换项目,我需要编写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

这应该有帮助:

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

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

此外,pushd <path>/popd允许您移动到目录并返回。

相关内容

最新更新