使用多行分配变量

pfn*_*sel 4 bash newlines assignment

我有一个功能

f(){
    echo 777
}
Run Code Online (Sandbox Code Playgroud)

和一个变量,我将函数的“返回值”分配给它。

x=$(f)
Run Code Online (Sandbox Code Playgroud)

非常简洁!然而,在我的实际代码中,变量名和函数名要长得多,而且函数也吃位置参数,所以上面的简洁行变得很长。因为我喜欢保持整洁,所以我想把上面的代码分成两行。

x=\
$(f)
Run Code Online (Sandbox Code Playgroud)

仍然有效!但是:保持整洁也意味着尊重缩进,这样就可以得到类似的东西

if foo
    x=\
    $(f)
fi
Run Code Online (Sandbox Code Playgroud)

由于空格而不再起作用!有什么好的解决方法吗?

Gil*_*il' 11

为什么要采用复杂的、难以阅读的结构?有一种完全自然的方式来呈现它,不需要任何中间作业、构建空字符串的奇特方式、引用微妙之处或其他认知负担。

if foo; then
    x=$(
      a_very_long_command_name --option1='argument 1 is long' \
                               --option2='argument 2 is long as well'
    )
fi
Run Code Online (Sandbox Code Playgroud)