bash – 使用花括号参数列表多次执行命令
发布时间:2020-12-16 01:09:04 所属栏目:安全 来源:网络整理
导读:当我需要使用不同的参数多次运行命令时,我使用了这种方法(完全不了解它): touch {a,b,c} 这相当于: touch atouch btouch c 我认为使用以下循环可以实现同样的目的: for file in {a,c}; do touch $file; done 但是,我偶然发现了一个不起作用的情况: pear
当我需要使用不同的参数多次运行命令时,我使用了这种方法(完全不了解它):
touch {a,b,c} 这相当于: touch a touch b touch c 我认为使用以下循环可以实现同样的目的: for file in {a,c}; do touch $file; done 但是,我偶然发现了一个不起作用的情况: pear channel-discover {"pear.phpunit.de","pear.symfony-project.com"} 我有几个问题: >第一个例子中发生了什么的名称是什么,到底发生了什么?
这称为
Brace Expansion,它扩展为给定字符串的空格分隔列表.
所以触摸{a,c}就相当于 touch a b c 触摸{a,c} x相当于: touch ax bx cx 你的pear命令基本上可以运行为: pear channel-discover pear.phpunit.de pear.symfony-project.com 这可能不是你所期望的.如果您希望为每个字符串运行一次命令,请使用for循环(它回答您的第二个问题),或使用大括号扩展和xargs的组合. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |