当前位置: 首页 > 知识库问答 >
问题:

使用bash脚本扩充Linux上的路径

赫连飞沉
2023-03-14

我正在尝试创建一个bash脚本,它允许我在每次执行它时扩展路径。下面是我要指出的代码:

#!/bin/bash
#script to augment path
echo "what directories do you want to add:"
read MYNEWPATH
echo "adding the "$MYNEWPATH" directory to PATH"
export PATH
echo "your new env variable is now:"
echo $PATH
exit 0

当我运行它并且cmd请求一个新目录时,我输入了我想要添加的目录,但它显示“第6行:路径:未找到命令”

欢迎所有建议,提前感谢。

共有1个答案

荆树
2023-03-14

您需要将新变量附加到旧路径(第4行),如下所示:

export PATH=$MYNEWPATH:$PATH

但是,当您运行脚本时,BASH会启动一个新的子进程,并且一旦脚本运行完毕,修改后的PATH变量就会恢复。要处理此问题,可以使用脚本创建一个源文件,然后source创建它,以便新路径在父shell环境中保持不变。

#!/bin/bash
echo "enter new path: "
read MYNEWPATH
echo export PATH=$MYNEWPATH:$PATH > sourcefile

运行脚本后,将创建一个新文件,您可以将其源代码导入父shell。从那里你所要做的就是源代码文件,并且你的新的、修改过的路径存在于你当前的环境中。

您很可能希望调整代码,以便在特定位置创建源文件。然后可以使用别名进一步自动化该过程

您可能还发现了一些帮助:如何在shell脚本中更改路径

 类似资料:
  • 问题内容: 我想在Linux PATH中添加一个小脚本,因此不必在实际放置在磁盘上的地方实际运行它。 该脚本非常简单,它是关于通过代理赋予apt-get访问权限的,我使它像这样: 然后,我将其保存为apt-proxy.sh,将其设置为+ x(chmod),当我位于该文件所在的目录中时,一切正常。 我的问题是:如何将此 apt-proxy 添加到 PATH, 以便实际上可以将其称为真正的apt-ge

  • 我想在linux路径中添加一个小脚本,这样我就不必在磁盘上实际运行它。 这个脚本非常简单,是关于通过代理提供apt-get访问权限的,我是这样做的: 然后我将其保存为apt代理。sh,将它设置为x(chmod),当我在这个文件所在的目录中时,一切都正常工作。 我的问题是:如何将这个apt-代理添加到PATH中,这样我就可以实际调用它,就好像它是真正的apt-get一样?[从任何地方] 寻找命令行唯

  • 问题内容: Linux bash脚本: 执行结果: 扩展到文件列表,它实际上是脚本本身。如何防止这种情况并查看实际变量值?在一般情况下,可能会比复杂,例如:。 问题答案: 您还需要转义变量: 并在您的职能:

  • 问题内容: 我想在我的Debian 7.3上制作大型脚本(类似翻译和更多新的用户友好环境)。我有个问题。我只想使用命令提供给我的一些信息。例如,我的ifconfig看起来像: 我只想在行中显示IP地址:echo“您的IP地址为:(IP_ADDRESS)”。是否有任何命令允许我执行此类操作,以便在流中搜索我想获取的信息?我知道,但是我对他们不是很好。 编辑:首先要说谢谢您帮助我解决了这个问题,现在我

  • 问题内容: 我正在尝试使用命令记录bash会话。 该命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。 我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下: 我也尝试过最后用a来调用命令,但是再次失败了。 谁能告诉我如何从bash脚本调用命令? 谢谢 问题答案: 您的Shell脚本没有终止。它仍在运行。您会收到提示,因为正在生成新的

  • 问题内容: 当类似Bash的脚本以二进制形式执行而没有shebang时,如何确定由谁执行? 我猜想 使用 shebang 运行普通脚本是由binfmt_script Linux模块处理的,该模块检查shebang,解析命令行并运行指定的脚本解释器。 但是,如果有人在没有脚本的情况下运行脚本会发生什么?我已经测试了直接方法,发现里面没有内核魔术,即像这样的文件: 运行仅执行调用的已编译C程序将产生: