Bash команда экспорта
У меня возникла странная проблема с моим 64-битным Ubuntu - в команде export.
В принципе, у меня есть установка VM на Ubuntu на моем Win7, и я пытаюсь передать команды из своих окон на мою установку VM с помощью пользовательского (заданного клиентом) программного обеспечения.
Итак, на моей виртуальной машине, когда я это делаю:
export foo=bar
echo $foo
все работает так, как ожидалось.
Однако, когда я делаю то же самое с помощью специального программного обеспечения (которое в основном передает команду linux в виде строки в оболочку bash), я получаю:
export: command not found
Я попробовал посмотреть на оболочку (используя специальное программное обеспечение), используя:
echo $SHELL>shell.txt
и я получаю /bin/ bash, который ожидается, и я все равно получаю команду export: command не найдена ошибка.
Мне было интересно, видел ли кто-нибудь эту ошибку раньше?
Ответы
Ответ 1
export
является встроенным Bash, echo
является исполняемым файлом в вашем $PATH
. Таким образом, export
интерпретируется Bash как есть, без появления нового процесса.
Вам нужно получить Bash для интерпретации вашей команды, которую вы можете передать как строку с опцией -c
:
bash -c "export foo=bar; echo \$foo"
и
Каждое обращение bash -c
начинается с новой среды. Так что-то вроде:
bash -c "export foo=bar"
bash -c "echo \$foo"
не будет работать. Второй вызов не запоминает foo
.
Вместо этого вам нужно связать команды, разделенные ;
одним вызовом bash -c
:
bash -c "export foo=bar; echo \$foo"
Ответ 2
Если вы используете C shell -
setenv PATH $PATH":/home/tmp"
Ответ 3
Вы уверены, что программное обеспечение (а не самостоятельно, так как ваш тест на самом деле показывает только оболочку, используемую по умолчанию для вашего пользователя) использует/bin/ bash?
Ответ 4
Возможно, потому, что он пытается выполнить "экспорт" в качестве внешней команды, а это оболочка внутренней.
Ответ 5
SHELL
- это переменная среды, и поэтому она не самая надежная для того, что вы пытаетесь выяснить. Если ваш инструмент использует оболочку, которая не устанавливает ее, она сохранит старое значение.
Используйте ps
, чтобы понять, что происходит на самом деле.
Ответ 6
Если вы не используете "export" cmd
то просто используйте:
setenv path /dir
как это
setenv ORACLE_HOME /data/u01/apps/oracle/11.2.0.3.0
Ответ 7
измените с bash на sh scripting, сделайте мою работу script.
!/Бен/ш
Ответ 8
Выполните следующие действия для удаления команды bash export not found. " Исправление ошибок при открытии терминала → → →
открыть терминал и ввести: root @кто-то: ~ # nano ~/.bashrc
После загрузки nano: удалите все строки "export PATH =..........................." и нажмите ctrl + o, чтобы сохранить файл, и нажмите ctrl + e, чтобы выход.
Теперь ошибка открытия терминала будет исправлена .........