当前位置:  开发笔记 > 编程语言 > 正文

如何在将bulitword参数保持在一起的同时在bash中传递完整的参数列表?

如何解决《如何在将bulitword参数保持在一起的同时在bash中传递完整的参数列表?》经验,为你挑选了1个好方法。

我在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

但这似乎有点笨重.有没有更好的办法,使扩张$argsdecho $args是字拆分我预想的方式吗?



1> mouviciel..:

您可以使用:

eval decho $args

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有