bash export命令

时间:2012-04-11 15:20:54

标签: linux ubuntu

我的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错误。

我想知道是否有人之前看过这个错误?

7 个答案:

答案 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脚本,让我的脚本工作。

!/ bin / sh的

答案 6 :(得分:-2)

按照以下步骤删除"找不到bash export命令。"终端开放式错误修复>>>>>>>

打开终端并输入:     root @ someone:〜#nano~ / .bashrc

加载nano后:     删除所有'导出PATH = ...........................'然后按ctrl + o保存文件,按ctrl + e退出。

现在终端开启错误将被修复.........