Сценарий Bash не выполняет команду от ПУТИ

У меня есть этот простой сценарий:

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

Вывод:

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

Таким образом, удар определенно видит HADOOP_HOME. Я установил его в ~/.profile и введенном тракте к папке мусорного ведра:

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

Если я просто вызываю команду в консоли, все работает, но в сценарии она не делает. Что я делаю неправильно?

2
задан 29 April 2014 в 22:35

1 ответ

Это не проблема с echo ${HADOOP_HOME} команда. Тот, который вызывает ошибку, $(hadoop fs -ls)

, необходимо дать 3-ю строку в том сценарии как echo $(hadoop fs -ls). Таким образом, сценарий будет похож,

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

, Если Вы будете давать команду как это $(hadoop fs -ls), будете колотить, анализирует его, и найдите, что это - значение. И основанное значение снова анализируется ударом.

Пример:

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

IMO, значение или вывод команды hadoop fs -ls Found, эта найденная строка была снова проанализирована ударом при предоставлении команды как это $(hadoop fs -ls). Так, чтобы ниже сообщения об ошибке, отображенного при выполнении сценария hello.sh,

./hello.sh: line 3: Found: command not found
2
ответ дан 9 August 2019 в 08:53

Другие вопросы по тегам:

Похожие вопросы: