如何使用bash检查环境变量的有效性是否存在且是否为真?
我正在寻找一个测试,如果定义了环境变量并且其值不同于0,false或NULL,则该测试将返回true.
ENABLE_SOMETHING=1 # or ENABLE_SOMETHING=true if ... do ... 注意:在任何情况下,bash都不应该抱怨未定义的变量或具有奇怪的值,除了0,空,假或未定义之外的其他任何内容都将被视为真.
这样的测试不存在,如Java或C#等高级语言,但构建起来相对容易.
对您提出的问题有三条评论: 1:您不使用bash中的文字“true”/“false”值;所有命令和条件结构都会产生退出状态或逻辑结果,它是0(真)或非0(假). 2:尽量不要使用大写参数名,除非它们是环境变量;这是一个简单的约定,有助于保持代码清洁. 3:究竟是什么意思是“NULL”?文字字符串NULL,空值或其他什么? 最有效的解决方案是接受变量(或参数,如bash调用它们)的函数,并检查这些条件,然后根据它设置退出状态,有效地将多个真值汇总到文字0或1. 例如: is_true(){if [[“$1”= 0]];然后是假的; elif [[-z“$1”]];然后是假的; elif [[“$1”=?[Ff] [Aa] [Ll] [Ss] [Ee]]];然后是假的;网络连接; } > is_true“1”产生0,这是真的 注意后一个例子清楚地表明你不需要这样的结构; bash中发生的一切都已经与这些基本的0/1真值一起使用了. 但我会批准你可能必须转换来自一些粗糙的外部程序的输入:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |