我有一个非常简单的shell脚本。 它读起来是这样的。
#!/bin/bash
echo upload trigram
bteq < load_temp_trigram
echo load bigram
bteq < load_temp_bigram
echo load word
bteq < load_temp_word
echo load phrase
bteq < load_temp_phrase
我收到以下错误,然后脚本执行以下命令
: command not found
upload trigram
: No such file or directoryigram
: command not found
load bigram
: No such file or directorygram
: command not found
load word
: No such file or directoryord
: command not found
load phrase
我用 bash script.sh 或 sh script.sh 来称呼脚本。
因此,看起来它无法识别 echo 命令,即使它似乎有效。 它正在切断字符串/文件的各个部分 - 这可能就是它找不到它们的原因。 我不知道这里发生了什么。 任何帮助将不胜感激。
1)像这样将 -x 添加到 shell 中
#!/bin/bash -x
它通常会减少问题的数量。
2)如果要文本输出,请使用引号喜欢这个
echo "upload trigram"
3) 使用可执行文件的绝对路径喜欢这个
/usr/bin/bteq
可以通过执行
which bteq
(如果你幸运的话,并且有一个安装的)SQL 批处理文件也是如此
/path/to/td_bins/bteq < /path/to/batch/load_temp_word
如果您在包含批处理文件的文件夹中,则它的相对路径将./