如何解决Bash:如何创建一个包含带有多单词标记的参数列表的变量?
| 我想创建一个变量,它实质上是要传递给命令或函数的参数列表。带有arg_string的以下模式适用于foo,bar和baz,但不适用于\“ multi word token \”,我希望命令将其视为单个参数。#!/bin/bash
function func() {
for arg in \"$@\"
do
echo ${arg}
done
}
arg_string=\"foo bar baz \\\"multi word token\\\"\"
arg_string=\"foo bar baz multi\\ word\\ token\"
arg_string=\"foo bar baz \'multi word token\'\"
func ${arg_string}
这是输出:
foo
bar
baz
\'multi
word
token\'
当我想要的时候:
foo
bar
baz
multi word token
解决方法
只需在函数调用前加一个
eval
:
eval func ${arg_string}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。