Bash脚本无法从PATH执行命令

摩西

我有这个简单的脚本:

#!/bin/bash
echo ${HADOOP_HOME}
$(hadoop fs -ls)

输出为:

/opt/hadoop-0.20.2-cdh3u2
./hello.sh: line 3: Found: command not found

因此bash肯定会看到HADOOP_HOME。我已经在〜/ .profile中设置了它,并向bin文件夹添加了路径:

export HADOOP_HOME="/opt/hadoop-0.20.2-cdh3u2"
export PATH=$PATH:$HADOOP_HOME/bin

如果我只是在控制台中调用命令,则一切正常,但在脚本中则无效。我究竟做错了什么?

阿维纳什·拉吉(Avinash Raj)

这不是echo ${HADOOP_HOME}命令的问题,导致错误的原因是$(hadoop fs -ls)

您必须在该脚本中将第3行指定为echo $(hadoop fs -ls)因此脚本看起来像

#!/bin/bash
echo ${HADOOP_HOME}
echo $(hadoop fs -ls)

如果您提供这样的命令$(hadoop fs -ls),则bash会对其进行解析并找到其值。bash再次解析了建立的价值。

例子:

$ var=4
$ $var
4: command not found
$ echo $var
4

IMO,命令的值或输出hadoop fs -lsFound,当您给出这样的命令时,找到的这个字符串又被bash解析了$(hadoop fs -ls)这样,在执行脚本时将显示以下错误消息hello.sh

./hello.sh: line 3: Found: command not found

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本无法从PATH执行命令

来自分类Dev

Bash脚本无法执行Go命令

来自分类Dev

Bash 菜单脚本 - 无法执行命令

来自分类Dev

bash脚本在ssh之后执行命令

来自分类Dev

BASH脚本-在变量中执行命令

来自分类Dev

Bash脚本从文件读取并执行命令

来自分类Dev

Bash脚本无法执行bash脚本

来自分类Dev

使用sudo执行命令并使用sudo执行Bash脚本

来自分类Dev

命令行PHP脚本无法正确执行

来自分类Dev

Bash脚本监视文件更改并执行命令

来自分类Dev

装入zsh并从bash脚本执行命令

来自分类Dev

如何在bash脚本中执行命令?

来自分类Dev

Bash脚本监视文件更改并执行命令

来自分类Dev

仅当端口空闲时才执行命令的Bash脚本

来自分类Dev

Bash脚本:在控制台中自动执行命令

来自分类Dev

Bash脚本监视文件更改并执行命令

来自分类Dev

Bash脚本生成和执行命令

来自分类Dev

在bash shell脚本中使用反引号执行命令

来自分类Dev

Bash脚本直到延迟后才执行命令

来自分类Dev

bash脚本读取我的文件并执行命令

来自分类Dev

RAID重建完成后,执行命令的bash脚本

来自分类Dev

bash脚本循环遍历不同文件并执行命令

来自分类Dev

在后台多次执行命令(bash脚本)

来自分类Dev

在 bash 脚本中检查执行命令的结果

来自分类Dev

如何使用 bash 脚本在远程主机上执行命令

来自分类Dev

无法在WiX脚本中静默执行命令

来自分类Dev

Bash脚本无法在Docker容器中正确执行

来自分类Dev

使用sqlplus执行查询后,bash脚本无法继续

来自分类Dev

Bash脚本无法正确处理npm命令