在 sh/bash 中强制分词以获得后备值

问题描述 投票:0回答:1

我想使用复杂命令作为后备值,类似这样,但不要将

ls -sh
视为单个字符串。

"${@:-ls -sh}"
bash sh
1个回答
0
投票

如果保证 args 不包含空格,您可以删除引号。否则你就只能走很长的路了:

(( $# == 0 )) && arr=(ls -sh) || arr=("$@")
# Now use "${arr[@]}" instead of "$@"
© www.soinside.com 2019 - 2024. All rights reserved.