linux - 使用 bash 脚本在 Linux 上增加路径
问题描述
我正在尝试创建一个 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 行:PATH:找不到命令”
开放所有建议,在此先感谢。
解决方案
您需要将新变量附加到旧路径(第 4 行),如下所示:
export PATH=$MYNEWPATH:$PATH
但是,当您运行脚本时,BASH 会触发一个新的子进程,并且一旦脚本运行完成,更改后的 PATH 变量就会恢复。要处理这个问题,您可以使用脚本创建一个源文件,然后创建一个源文件,source
以便新路径保留在父 shell 环境中。
#!/bin/bash
echo "enter new path: "
read MYNEWPATH
echo export PATH=$MYNEWPATH:$PATH > sourcefile
运行脚本后,将创建一个新文件,您可以将其作为源代码输入到父 shell 中。从那里你所要做的就是source sourcefile
,你的新的、改变的路径存在于你当前的环境中。
您很可能想要调整代码,以便在特定位置创建源文件。然后,您可以使用别名进一步自动化该过程。
您可能还会找到一些帮助:how to alter path within a shell script
推荐阅读
- optimization - 带有 MOSEK 求解器的 CVXPY:如何找到与 Mosek“索引”对应的约束?
- php - PHP csv下载与服务器上的文件副本不同
- spring-webflux - 如何使代码更具反应性;删除 if,检查是否为空并进行中间记录
- python - 如何用熊猫替换数据框中的部分标签?
- python - Python - 如何修复字符串拆分?
- java - 启用 SSL 的连接器不断出现在 server.xml 中
- c# - C# 非静态字段、方法或属性“variables.rhifAnfoneb”需要对象引用
- java - 复合一次性接收到的远程数据,但未从 callback.onResult 进入存储库
- sql - 匹配两个SQL数据库中不同类型的两个值
- javascript - 控制 Netscaler 图像延迟加载