我能够成功运行
/opt/hbase/hbase_current/bin/hbase
在命令行上,当连接到GNU / Linux集群时。
但是,当我将此命令作为bash脚本的一行时,错误是:
: No such file or directoryopt/hbase/hbase_current/bin/hbase
我做错了什么?
当我根据" bash"的结果向bash脚本添加标题时,出现以下错误:
bash: ./file.sh: /bin/bash^M: bad interpreter: No such file or directory
该文件的内容如下:
#!/bin/bash
ENTITY="'A.B.C'"
HBASE_SHELL="/opt/hbase/hbase_current/bin/hbase"
FILE="A.B.C.txt"
/opt/hbase/hbase_current/bin/hbase
#echo "scan $ENTITY" | $HBASE_SHELL > $FILE
答案 0 :(得分:2)
哦,你的行尾有DOS风格的CR / LF。您可以看到它们显示为^M
这样做:
tr -d '\r' < file.sh > newfile.sh
chmod +x newfile.sh
./newfile.sh
tr
命令以-d
开头,这意味着删除后面出现的所有内容,在这种情况下是表示回车的序列(CR
)。
答案 1 :(得分:1)
您似乎已从Windows框中复制了该脚本。尝试在文件上使用dos2unix删除Windows行结尾:
$ dos2unix file.sh
(sudo apt-get install dos2unix
如果你没有它)