gpt4 book ai didi

bash - 像解析参数一样解析变量?

转载 作者:行者123 更新时间:2023-11-29 09:48:18 24 4
gpt4 key购买 nike

在 Bash 中有没有一种方法(无需调用第二个脚本)来解析变量,就好像它们是命令行参数一样?我希望能够通过引号等对它们进行分组。

例子:

this="'hi there' name here"

for argument in $this; do
echo "$argument"
done

应该打印(但显然不打印)

hi there
name
here

最佳答案

不要将参数存储在字符串中。数组就是为此目的而发明的:

this=('hi there' name here)

for argument in "${this[@]}"; do
echo "$argument"
done

如果您可以控制 this,强烈建议您使用此方法。如果不这样做,那就更有理由不使用 eval,因为可能会在 this 的值中嵌入不需要的命令。例如:

$ this="'hi there'); echo gotcha; foo=("
$ eval args=($this)
gotcha

不太邪恶的是像 this="'hi there' *" 这样简单的东西。 eval 将扩展 * 作为模式,匹配当前目录中的每个文件。

关于bash - 像解析参数一样解析变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604028/

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