bash - Linux 检查 PATH 是否存在
问题描述
我想制作一个 shell 脚本来检查是否添加了环境变量,否则。
if [ ! echo $PATH | grep "/what_i_want_to_add" ]; then # If there is no environment variable
export PATH=$PATH:/what_i_want_to_add
fi
如果可能,我想使用 /dev/null 丢弃输出。
我应该怎么办?
解决方案
这是archlinux里面用到的一个函数/etc/profile
。将路径添加到PATH
.
# Append our default paths
appendpath () {
case ":$PATH:" in
*:"$1":*)
;;
*)
PATH="${PATH:+$PATH:}$1"
esac
}
# usage example:
appendpath '/what_i_want_to_add'
case ":$PATH:" in
- 匹配$PATH
但带有尾随和前导冒号,以便我们可以:*:"$1":*)
- 匹配:$PATH:
任何内容,后跟冒号,后跟参数,后跟冒号,以及任何内容。因为我们使用":$PATH:"
它会扩展为:/path1:/path/2:/path/3:
可以*:/path1:*
与通配符匹配的表达式。- 如果匹配成功,什么都不做
*)
- 别的- 将参数添加到
PATH
. ${PATH:+$PATH:}
- 一个外壳参数扩展。如果PATH
为空或 NULL,则展开为空。如果路径不为空,则扩展为$PATH
后跟冒号。这可以处理空PATH=
参数,以便:
不添加前导空。
- 将参数添加到
推荐阅读
- log4net - 客户端 IP 地址的 log4net 2.0.8 模式
- java - 警报 setExact() 停止执行
- conda - snakemake:SGE 集群上未激活 conda 环境
- regex - 用于结束字符串的 Eclipse 正则表达式匹配
- hyperledger - 如何使用 Hyperledger Sawtooth 中的控制台查找用户地址?
- javascript - Webcomponent自定义元素传函数onClick
- angular - 如何在更新/删除/插入行时更新表视图而不重新加载整个组件
- angularjs - Spring获取请求文件未下载
- c# - 检查实体的属性是否通过反射和 EF Core 标记为 IsRequired()
- python - 如何隐藏基于单选按钮选择的 tkinter 小部件?