![Bash:带有命令替换的默认变量](https://linux22.com/image/83323/Bash%EF%BC%9A%E5%B8%A6%E6%9C%89%E5%91%BD%E4%BB%A4%E6%9B%BF%E6%8D%A2%E7%9A%84%E9%BB%98%E8%AE%A4%E5%8F%98%E9%87%8F.png)
有没有办法使用 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 将过滤标准输入)。