Bash Linux检查路径是否存在

Bash Linux检查路径是否存在,bash,shell,Bash,Shell,我想制作一个shell脚本,检查是否添加了环境变量,否则 if[!echo$PATH | grep”/我想添加什么“;然后#如果没有环境变量 导出路径=$PATH:\u我希望\u添加的内容 fi 如果可能,我想使用/dev/null放弃输出。 我该怎么办?这是一个在archlinux内部使用的函数/etc/profile。将路径添加到path时,它可以完美地工作 # Append our default paths appendpath () { case ":$PATH:&

我想制作一个shell脚本,检查是否添加了环境变量,否则

if[!echo$PATH | grep”/我想添加什么“;然后#如果没有环境变量
导出路径=$PATH:\u我希望\u添加的内容
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'
  • 案例:“$PATH:”在
    -匹配
    $PATH
    ,但使用尾随和前导冒号,以便我们可以:
    • *:“$1”:*)
      -将
      :$PATH:
      与任何内容匹配,后跟冒号、参数、冒号和任何内容。因为我们使用了
      :$PATH:“
      它将扩展到
      :/path1:/PATH/2:/PATH/3:
      ,可以与带有全局表达式的
      *:/path1:
      匹配。
      • 如果比赛成功,什么也不做
    • *)
      -其他
      • 将参数添加到路径中
      • ${PATH:+$PATH:}
        -shell参数扩展。如果
        PATH
        为空或NULL,则展开为空。如果路径不是空的,则展开到
        $path
        ,后跟冒号。这可以处理一个空的
        PATH=
        参数,这样就不会添加前导的空

业余投球检查
我应该怎么做?
阅读有关shell编程语言中的测试命令。阅读shell编程语言中的
if
语句。阅读
grep
及其使用方法,了解
-q
选项。研究分词,以及为什么需要引用变量。使用shellcheck.net检查组件mistakes@AMATEUR_TOSS:请以可理解的方式提问:问题标题是关于要存在的环境变量,问题文本是关于要添加的环境变量。此外,您还询问如何放弃输出。这是另一个问题;请不要在一个问题中问两件不相关的事情。最后,您发布的代码与环境变量的存在无关,而与它们的内容有关。