将空格字符串作为参数传递给函数

bgomes06

我试图做这样的安装功能:

function call_fedora(){
        yum -y install $1;
}

function network_tools(){
        tools='net-tools traceroute nmap'
        call_fedora $tools;
}

但是,当我调用network_tools函数时,仅net-tools作为参数传递给call_fedora我希望致电是:

yum -y install net-tools traceroute nmap
x

Bash实际上将call_fedora整个字符串net-tools traceroute nmap作为一个参数传递我知道在bash中执行所需操作的一种可靠方法是使用数组扩展:

function call_fedora(){
        yum -y install "$@"     # "$@"  means  "$1" "$2" ...
}

function network_tools(){
        tools=(net-tools traceroute nmap "some funky package with spaces")
        call_fedora "${tools[@]}"       
                # keep relationship between array elements and args of call_fedora
}

"$@"装置,其每个参数来call_fedora将作为一个单独的参数传递yum双引号表示参数可以包含空格(这是一个好习惯)。

然后,您需要确保将您tools作为单独的参数传递给call_fedora将它们制成数组可以很容易地将它们分开。可以"${tools[@]}"为您提供每个数组元素作为单独的参数,并用正确的引号引起来(原始来源)。

编辑@chepner在下面评论中指出,此用例有更简单,更可移植的技术。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串作为键参数传递给函数

将字符串作为参数传递给BASH中的空格

将字符串作为函数中的参数传递给 R 中的其他函数

将字符串作为参数传递给 python 脚本

将字符串参数传递给函数作为dplyr中的数据框列名称

将字符串作为参数名称/值对传递给R函数

如何将连接的字符串作为参数传递给函数:Angular 2

将数组的元素作为参数列表传递给函数(而不是组合字符串)

将php字符串作为参数传递给php脚本中调用的javascript函数

PHP将逗号分隔的字符串作为多个参数传递给函数

如何将字符串作为参数传递给需要R中的变量的函数

将keras优化器作为字符串参数传递给keras优化器函数

如何将字符串作为参数传递给javascript函数

如何将字符串作为参数传递给JavaScript函数?

将 PHP 字符串和整数作为参数传递给 JavaScript 函数

将参数传递给函数内的字符串 json

将参数传递给函数以返回字符串

将 Ruby 字符串传递给 Javascript 函数参数

将函数的字符串参数作为列名传递

将键传递给函数作为字符串参数时,VBA Excel错误“按参考参数类型不匹配”

传递函数输出以查找作为参数传递给输入文件的函数输出的字符串

将多个字符串值作为参数从服务器端传递给 javascript 函数

将文件作为一个字符串参数传递给bash函数

将参数列表作为一个字符串传递给python函数

将字符串传递给函数

将字符串传递给函数

将在一个函数中创建的字符串值作为参数传递给函数

将带空格的字符串传递给参数-Powershell

在bash中将带空格的字符串作为函数参数传递