我有一个shell脚本:
#!/bin/bash
server=$1
modules=$2
is_selected= if [[ $modules== *"myModule"* ]]; then true else false fi
我希望如果条件$modules== *"myModule"*
得到验证,
则变量被选择得到true
,否则得到false
如何在一行中进行调整
您需要命令替换,并且您的命令必须输出字符串true
或false
。
is_selected=$( if [[ $modules == *"myModule"*; then echo true; else echo false; fi)
或者将赋值放在if
语句中:
if [[ $modules == *myModule* ]]; then is_selected=true; else is_selected=false; fi
其优点是不需要用于命令替换的子shell(并且可能需要新进程(。
或者使用注释中的建议,将变量初始化为false,如果匹配成功,则将其设置为true。
is_selected=false; [[ $modules == *myModule* ]] && is_selected=true
运行命令替换并返回所需结果:
is_selected=$(if [[ "$modules" == *"myModule"* ]]; then echo true; else echo false; fi)