我的64位Ubuntu遇到了一个奇怪的问题 - 在导出命令上。
基本上,我在Win7上的Ubuntu上安装了VM,我正在尝试使用自定义(由客户端提供)软件将命令从我的Windows传递到我的VM安装。
所以,在我的VM上,当我这样做时:
export foo=bar
echo $foo
一切都按预期工作。
然而,当我通过自定义软件(基本上将linux命令作为字符串传递给bash shell)时,我得到:
export: command not found
我尝试使用以下方法查看shell(使用自定义软件)
echo $SHELL>shell.txt
我得到/ bin / bash是预期的,我仍然得到export:command not found错误。
我想知道是否有人之前看过这个错误?
答案 0 :(得分:27)
export
是内置的Bash,echo
是$PATH
中的可执行文件。因此,export
由Bash按原样解释,而不会产生新进程。
您需要让Bash解释您的命令,您可以使用-c
选项将其作为字符串传递:
bash -c "export foo=bar; echo \$foo"
ALSO:
bash -c
的每次调用都以新环境开始。如下所示:
bash -c "export foo=bar"
bash -c "echo \$foo"
不起作用。第二次调用不记得foo
。
相反,您需要在;
的单个调用中链接由bash -c
分隔的命令:
bash -c "export foo=bar; echo \$foo"
答案 1 :(得分:5)
如果您使用的是C shell -
setenv PATH $PATH":/home/tmp"
答案 2 :(得分:0)
您确定该软件(而不是您自己,因为您的测试实际上只显示用户默认使用的shell)使用/ bin / bash吗?
答案 3 :(得分:0)
可能是因为它试图将“export”作为外部命令执行,而且它是一个shell内部。
答案 4 :(得分:0)
SHELL
是一个环境变量,因此对于您想要解决的问题而言,它并不是最可靠的。如果您的工具使用的shell没有设置它,它将保留旧值。
使用ps
找出实际情况。
答案 5 :(得分:0)
从bash更改为sh脚本,让我的脚本工作。
答案 6 :(得分:-2)
按照以下步骤删除"找不到bash export命令。"终端开放式错误修复>>>>>>>
打开终端并输入: root @ someone:〜#nano~ / .bashrc
加载nano后: 删除所有'导出PATH = ...........................'然后按ctrl + o保存文件,按ctrl + e退出。
现在终端开启错误将被修复.........