我有一个非常简单的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命令,即使它似乎有效。它正在切断字符串/文件的碎片 - 这可能是它无法找到它们的原因。我不知道这里发生了什么。任何帮助将不胜感激。
答案 0 :(得分:0)
1)像这样添加-x到shell
#!/bin/bash -x
它会减少一般问题的数量。
2)如果您希望文本输出使用引号 像这样
echo "upload trigram"
3)使用可执行文件的绝对路径 像这样
/usr/bin/bteq
执行
可以找到bteq可执行文件的路径which bteq
(如果你很幸运,并安装了哪个) 同样适用于sql批处理文件
/path/to/td_bins/bteq < /path/to/batch/load_temp_word
如果您在包含批处理文件的文件夹中,则相对路径为./