您可以在 shell 脚本中的管道之间插入换行符吗?

you*_*ter 0 bash shell

例如,代替:

( set -o posix ; set ) | grep -v '^PATH'| grep -v '^USER'
Run Code Online (Sandbox Code Playgroud)

有什么办法吗

( set -o posix ; set ) 
| grep -v '^PATH' 
| grep-v '^USER'
Run Code Online (Sandbox Code Playgroud)

在 .sh 脚本本身中(为了使代码更清晰、更易于阅读?

Bar*_*mar 6

将管道放在行的末尾而不是开头

( set -o posix ; set ) | 
    grep -v '^PATH' | 
    grep -v '^USER'
Run Code Online (Sandbox Code Playgroud)

或转义换行符

( set -o posix ; set ) \
    | grep -v '^PATH' \
    | grep -v '^USER'
Run Code Online (Sandbox Code Playgroud)

如果您使用第二种方法,请确保反斜杠后面没有空格,它必须位于换行符之前。

请注意,无需使用两次grep调用。grep -E与匹配两个变量的正则表达式一起使用。

( set -o posix ; set ) | grep -E -v '^(PATH|USER)'
Run Code Online (Sandbox Code Playgroud)