【问题标题】:.bash_profile and terminal.bash_profile 和终端
【发布时间】:2026-01-16 20:40:01
【问题描述】:

我的 .bash_profile 看起来是这样的:

当我打开终端时,我得到这三行:

-bash:导出:Workbooks.app/Contents/SharedSupport/path-bin': not a valid identifier -bash: export:Workbooks.app/Contents/SharedSupport/path-bin':不是有效的标识符 -bash:导出:Workbooks.app/Contents/SharedSupport/path-bin': not a valid identifier -bash: export:Workbooks.app/Contents/SharedSupport/path-bin':不是有效标识符

我应该从我的 .bash_profile 中删除什么来摆脱它?

【问题讨论】:

标签: python bash macos terminal


【解决方案1】:

这里有多个错误,但您要问的是因为Xamarin Workbooks 中的空格需要转义或引用。另见When to wrap quotes around a shell variable?

重复的片段当然也是错误的;重复的代码应该只出现一次。我猜你多次运行了一些错误的安装程序,它首先盲目地添加了包含错误的东西,如果它已经存在,绝对不应该再次添加。如果你能识别出这个安装程序,也许可以向它的维护者提交一份错误报告。

硬编码复杂的PATH 通常也是错误的。通常,正确的行为是保留您以前的PATH,并且只在旧值之前或之后添加一个附加目录,例如

PATH=/new/stuff:$PATH

PATH=$PATH:/new/stuff

其中/new/stuff 是添加的目录,$PATH 调用变量的先前值。

如果某些东西以编程方式盲目地覆盖了您的语言环境设置,那么这也是一个错误,并且如果您的真实语言环境设置正确且有用,那么这也是完全敌对的。无论如何,使用LC_ALL 很可能是严重的矫枉过正;如果特定应用程序需要您覆盖特定的语言环境设置,它应该只覆盖它需要的特定设置,而不是所有内容。但实际上,即便如此,根据您的个人喜好编写这些内容也没有任何意义。

Conda 片段还包含一个不良实践示例(有些人会称之为反模式);另见Why is testing "$?" to see if a command succeeded or not, an anti-pattern?

export PATH 根本不需要,尽管不必要地指定它是无害的本身, 并且消除了 shell 的系统范围的启动文件已经导出它的假设。不过,在同一个脚本中多次导出同一个变量是很愚蠢的。

【讨论】:

    最近更新 更多