Bash:带有命令替换的默认变量

Bash:带有命令替换的默认变量

有没有办法使用 Bash 一次性完成以下任务?

my_var=${$(grep -E '^setting_1' /settings.conf):-default_setting1}

相对于:

my_var=$(grep -E '^setting_1' /settings.conf); my_var=${my_var:-default_setting}

答案1

如果 grep 失败,您可以输出默认值:

var=$( grep -e '^setting_1' || echo default_setting )

请注意,您没有关闭引号(如果没有文件参数,grep 将过滤标准输入)。

相关内容