我想在shell脚本中执行以下操作。
根据编号分配变量CON_1。传递的参数,稍后我将在另一个条件
中使用此CON_1变量if [ $# < 2 ];then
CON_1=([ $m = Online ])
else
CON_1=[ $m = Online -a ${#bld_stat} -gt 0 ]
根据CON_1变量值,我正在打印一条消息
if $CON_1; then
我不知道这是否可能在shell中,如果有可能,有人可以指导我这个。
答案 0 :(得分:2)
您可以轻松地在变量中存储结果:
[ $m = Online -a ${#bld_stat} -gt 0 ]
condition=$?
您也可以将条件的来源存储在变量中,但是您需要eval
来运行它:
condition='[ $m = Online -a ${#bld_stat} -gt 0 ]'
eval "$condition"
如果没有eval
,变量就不会被展开,因为变量扩展只发生一次。
使用函数:
代替变量condition () {
[ $m = Online -a ${#bld_stat} -gt 0 ]
}
if condition ; then ...
您甚至可以将参数传递给函数:
condition () {
[ $m = Online -a ${#bld_stat} -gt "$1" ]
}
if condition 12 ; then # Will use 12 instead of 0 to compare.