【问题标题】:Adding dynamically path to .bashrc or .bash_profile using shell command on Mac在 Mac 上使用 shell 命令动态添加 .bashrc 或 .bash_profile 的路径
【发布时间】:2018-09-03 14:45:40
【问题描述】:

我正在创建一个新命令来在 python 中运行一些代码。

为了安装命令,我创建了 install.sh 文件。

在 shell 文件中,我移动了一个 shell 文件,使其可执行。但为了访问命令,我必须手动添加 .bashrc 或 .bash_profile 的路径。

我想在 install.sh 文件中动态添加类文件,这样就不必手动添加路径。它还应该在卸载时删除类路径。

这是我的 install.sh 命令

mv $HOME/mycmd/bin/my.sh $HOME/mycmd/bin/my

chmod +x $HOME/mycmd/bin/my

我尝试了sed -i 'class path' ~/.bashrc,但它不起作用。

【问题讨论】:

    标签: bash macos shell


    【解决方案1】:

    您实际上不需要命令来执行此操作,只需一个编辑器即可,因为您只需执行一次即可。打开~/.bash_profile 并查找类似于

    的行
    PATH=...
    

    ... 代表任意一组路径;它不是文字。)

    如果你找到它,将你的路径添加到路径的前面,如下所示:

    PATH=~/mycmd/bin:...
    

    如果您没有找到它,请将以下内容添加到文件中。

    PATH=~/mycmd/bin:$PATH
    

    以后,您可以根据需要将其他目录添加到该行。此外,您可以在此目录中添加更多可执行文件,而无需进一步修改.bash_profilePATH 的目的是告诉 shell 在哪里可以找到可执行文件,而不是单独注册每个可执行文件。

    【讨论】:

    • 我正在尝试使用 shell 脚本或 Makefile 在 .bash_profile 或 .bashrc 中添加 PATH。我正在创建一个新命令,这就是为什么我想从 install.sh 文件或 Makefile 中添加 bin 文件夹路径在 .bash_profile 中
    • 我建议不要这样做。通过提供完整路径,您的程序始终可用;让每个用户自己决定是否要修改他们的 PATH。
    • 这篇文章的最后一句话具有误导性。 PATH 变量的目的只是指定要搜索的目录以查找命令。指向包含单个可执行文件的文件夹或将每个可执行文件单独存储在自己的文件夹中都没有错,这完全取决于您的用例。
    【解决方案2】:

    以下内容将满足您的需求

    echo -en "PATH=\$PATH:/path/to/my/class\nexport PATH" >> ~/.bash_profile
    

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 2017-11-09
      • 1970-01-01
      • 2022-01-10
      • 2012-11-17
      相关资源
      最近更新 更多