Shell脚本 - 删除部分字符串。找不到文件

时间:2014-02-26 17:08:19

标签: bash shell sh

我有一个非常简单的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 个答案:

答案 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

如果您在包含批处理文件的文件夹中,则相对路径为./