gpt4 book ai didi

bash - 如何打印$@

转载 作者:行者123 更新时间:2023-12-02 03:16:04 26 4
gpt4 key购买 nike

我在 bash 中有一个函数,它接受未知数量的参数:

printAndRunCommand() {
printf "$@"
eval "$@"
}

因为 printf 仅接受单个参数,所以当我使用以下命令运行此命令时

printAndRunCommand wget stackoverflow.com 

仅打印wget。我可以使用 echo 命令归档相同的效果,但我使用 printf 特定字符,例如颜色更改,在 origin 命令中看起来像 printf '"\033[4;36m$@\e[0 ;33;40m”

如何将 "$@" 传递给 printf 命令?

最佳答案

使用 $* 将参数列表转换为单个字符串。

printf '%s\n' "$*"

更好的是,使用 %q 来引用元字符。

printf '%q ' "${@}"; printf '\n'
$ printAndRunCommand 'a b' c 'foo$bar'
a\ b c foo\$bar

如果您有 bash 4.4+,您可以使用 @Q 获得更好看的输出,并且仍然正确引用。

printf '%s\n' "${*@Q}"
$ printAndRunCommand 'a b' c 'foo$bar'
'a b' 'c' 'foo$bar'

关于bash - 如何打印$@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com