【问题标题】:source /.bash_profile command not working源 /.bash_profile 命令不起作用
【发布时间】:2020-11-28 19:39:24
【问题描述】:

在使用以下命令在我的 .bash_profile 文件中定义新别名后,我正尝试在我的 Mac(OS Catalina 10.15.6)上刷新我的别名:

source ~/.bash_profile

但是终端一直给出这个错误信息:-bash: s: command not found

这很令人困惑,因为这个命令工作的时间最长。我什至将它作为别名包含在我的 .bash_profile 文件中,在那里它运行良好。

我知道问题可能与我的 PATH 中的错误有关,但我从未对我的 PATH 进行任何编辑,所以不知道问题可能是什么?

提前致谢。

【问题讨论】:

  • 所以输入命令s的完整路径(执行type s可能会给出答案)。
  • 听起来 .bash_profile 本身 in 中有一条坏行,试图运行命令 s
  • 您能否更具体地说明您遇到的问题?你说它“不断给出这个错误消息”,但我不知道这是否意味着 1.“我的别名被命名为 s,每次我运行 s 时都会收到这条消息”,或者 2.“我明白了此错误是对source 命令的响应”,或 3.“我运行的每个命令都会收到此消息”或 4.“此消息在无限循环中持续打印”
  • 除了错误之外,别名应该在.bashrc 中定义,而不是.bash_profile(并且特定于macOS,您应该从.bash_profile 获取.bashrc)。
  • @MarkReed 你是对的!在我的 .bash_profile 中意外输入了 "s"。谢谢!

标签: bash terminal alias macos-catalina


【解决方案1】:

我怀疑source 命令工作正常,问题是~/.bash_profile 本身中有一条错误的行,看起来它正在尝试运行一个名为s 的命令。我会在那里寻找问题。

通过bash -x ~/.bash_profile 使用xtrace 运行它可能会有所帮助——在一个单独的进程中运行它不会有任何source 在你当前的shell 中可能需要的副作用,但是你可以看到它正在尝试做什么,以便您修复它。

(您也可以在source 之前只使用set -x 并同时获取xtrace 并在当前shell 中运行;请确保之后set +x 否则您的shell 会话将充满调试输出。)

【讨论】:

  • 谢谢!是的,看起来这正是问题所在。在 ~/.bash_profile 中意外输入了 s。现在工作!但仍然对为什么s 在尝试运行source 命令时会导致问题感到困惑?
  • source $filename(也拼写为. $filename)表示“运行$filename 中的所有命令,就像我输入它们一样”。因此,如果文件有一行以 s 开头,那么如果您在命令行中键入以 s 开头的行,您会得到相同的结果 - 除非您已经定义或安装了该名称的命令,否则您看到的错误消息。
  • 啊,有道理。欣赏解释:)
【解决方案2】:

我的第一反应是检查 ~/.bashrc 和 /etc/bashrc 是否存在。那是我通常定义别名的地方,在我看来,一个不好的别名可能是你的问题。

我并不是说它是你制作的,尽管它可能是。只需浏览您的 rc 和配置文件并查找任何可能与源代码冲突的别名。

【讨论】:

  • 谢谢!对我来说,这绝对是一个糟糕的别名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 2013-08-23
  • 2017-02-23
相关资源
最近更新 更多