【问题标题】:“export: command not found [duplicate]“导出:找不到命令[重复]
【发布时间】:2015-05-17 21:59:38
【问题描述】:

当我在我的 Mac 上打开终端时,它会显示

Last login: Sun Mar 15 22:12:02 on ttys000
-bash: “export: command not found
-bash: “export: command not found
-bash: “export: command not found
-bash: “export: command not found

(我的回声 $PATH)

MacBook-Air-Tim:~ timreznik$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/Users/timreznik/bin:/usr/local/bin
MacBook-Air-Tim:~ timreznik$ 

我已经尝试将我的 .bash_profile 编辑为

# general path munging
PATH=${PATH}:~/bin
PATH=${PATH}:/usr/local/bin

但它仍然一直显示“导出:我启动终端时找不到命令...

附:所有命令似乎都有效,但我内心的完美主义者在尖叫!

【问题讨论】:

  • 你也有 .profile 文件吗?
  • 不是真正的问题,但仍然是:波浪号~ 仅在它位于 shell 字的开头时才会被扩展,而它不在 PATH=${PATH}:~/bin 中。经验法则:当您指的是您自己的家时,请始终使用$HOME 而不是~
  • 查看这个关于设置PATH的问题stackoverflow.com/questions/22465332/…

标签: macos bash path


【解决方案1】:

首先,export 是一个内置的 shell:

$ type export
export is a shell builtin

这意味着PATH 无关紧要。

其次,错误消息清楚地表明脚本正在尝试运行命令“export。没有这样的命令:

$ “export
bash: $'\342\200\234export': command not found

解决办法是去掉字符串export前面的伪字符。

这个拼写错误的命令位于 shell 的一个初始化文件中。其中包括:~/.bashrc/etc/bash.bashrc~/.bash_profile~/.bash_login~/.profile,以及它们包含的任何文件。

或者,以下命令将告诉您哪些文件以及这些文件中的哪些行有拼写错误的export 命令:

PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic ""  7>trace.out
grep '“export' trace.out

有关上述工作原理的详细信息,请参阅this post

【讨论】:

  • 非常有帮助!如您所说,在 /etc/bash.bashrc 中的 PATH 是无关紧要的)现在我的终端很干净。谢谢)
【解决方案2】:

我遇到了类似的问题,罪魁祸首是export 和变量名称之间的不间断空格。 要解决此问题,只需将其替换为常规空格字符即可。

详情: 我在.bash_profile 中有以下内容:

export a=foo

当我启动新终端时,我会得到

-bash: export a=foo: command not found

但是,如果我们在文件上运行xxd,我们可以清楚地看到问题(点是不可打印的字符:

$ cat .bash_profile | head -n1 | xxd
00000000: 6578 706f 7274 c2a0 613d 666f 6f       export..a=foo

字节序列c2a0代表non-breaking space

【讨论】:

    猜你喜欢
    • 2017-01-21
    • 2016-06-06
    • 2013-09-07
    • 2013-05-17
    • 2019-01-28
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多