如何检查变量(通常是文本)是否未定义或为空,如果变量为空,则使用其他变量。

7 浏览
0 Comments

如何检查变量(通常是文本)是否未定义或为空,如果变量为空,则使用其他变量。

这个问题已经有了答案:

在bash中用单个命令为shell变量赋默认值

脚本A从脚本B中导入所有变量;问题在于脚本B中的变量是否存在或为空,我不知道我需要的变量。如果B中不存在变量,则在脚本A中使用我的变量。如果在A中存在该变量,则使用我的变量B;如果在A和B中都存在,则使用B的默认变量。

例子:

在这种情况下,我的脚本\"B\"中的变量Comment3为空...

脚本B.sh

#!/bin/sh
Name='Variety'
Comment='Variety changes the wallpaper on a regular interval'
Comment3=''
License='GPLv3'
Screenshot='http://peterlevi.com/variety/wp-content/uploads/2012/10/01-all-1024x576.jpg'
Url='http://peterlevi.com/variety/'
export Comment
export Name
export Comment3
export License
export Screenshot
export Url

脚本A.sh

#!/bin/sh
. $HOME/B.sh
Comment2='Variety changes the desktop wallpaper on a regular basis, using user-specified or automatically downloaded images.'
echo $display_variable_comment3_or_comment2 (depending the case)

抱歉我的英语很烂 :/

admin 更改状态以发布 2023年5月22日
0
0 Comments

这取决于你需要检查变量是否存在或者它的值是否为空。如果你只需要测试它是否为空,可以使用以下方法:

if [ -z "$COMMENT3" ] ; then
    COMMENT3="some comment"
fi

...否则可以使用@anubhava的答案。

0
0 Comments

\n\n在BASH中,你可以这样做:\n

pvar="${s:-defaultVal}"

\n然后如果存在,pvar将被设置为$s,否则它将被设置为defaultVal

0