gpt4 book ai didi

linux - 如何在 bash 中传递完整的参数列表,同时将多词参数放在一起?

转载 作者:IT王子 更新时间:2023-10-29 00:07:12 35 4
gpt4 key购买 nike

我在 bash 变量扩展中遇到一些分词问题。我希望能够将参数列表存储在变量中并运行它,但任何带引号的多词参数都没有评估我的预期。

我会用一个例子来解释我的问题。假设我有一个函数 decho 将每个位置参数打印在它自己的行上:

#!/bin/bash -u
while [ $# -gt 0 ]; do
echo $1
shift
done

好的,如果我去 decho a b "c d" 我得到:

[~]$ decho a b "c d"
a
b
c d

这是我所期望和想要的。但另一方面,如果我从变量中获取参数列表,我会得到:

[~]$ args='a b "c d"'
[~]$ decho $args
a
b
"c
d"

这不是我想要的。我可以走了:

[~]$ echo decho $args | bash
a
b
c d

但这似乎有点笨拙。有没有更好的方法使 decho $args 中的 $args 的扩展按照我预期的方式进行分词?

最佳答案

您可以使用:

eval decho $args

关于linux - 如何在 bash 中传递完整的参数列表,同时将多词参数放在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/560987/

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