gpt4 book ai didi

bash - 检查环境变量或其包含路径是否不存在

转载 作者:行者123 更新时间:2023-11-29 09:32:00 25 4
gpt4 key购买 nike

我想检查环境变量 MY_DIR 或其包含路径是否不存在。

谁能看出我做错了什么?

#!/bin/bash

# If $MY_DIR or its containing path doesn't exist
if [ ! $(env | grep -q ^MY_DIR=) ] || [ ! -d "$MY_DIR" ]; then
echo "not existing"
# set it
export MY_DIR="$PWD"
fi

最佳答案

由于空字符串不能命名一个已经存在的目录,你不必担心是否设置了MY_DIR;只需检查它的(可能不存在的)值是否命名了一个目录。

if [[ ! -d $MY_DIR ]]; then
export MY_DIR=$PWD
fi

也不需要专门检查环境中是否有 MY_DIR。虽然可以有一个不是环境变量的 shell 变量,但不可能有一个不是 shell 变量[0]的环境变量,也不可能有一个与环境变量同名但值不同的 shell 变量(环境变量只是一个设置了导出属性的 shell 变量。)

[0] 好的,从技术上讲,您可以继承名称不是有效 shell 标识符的环境变量。让我们忽略那些,好吗? :)

关于bash - 检查环境变量或其包含路径是否不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23659361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com