加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在bash中同时循环多个通配符?

发布时间:2020-12-16 01:44:47 所属栏目:安全 来源:网络整理
导读:在bash中,我编写了一个函数,它使用通配符循环遍历具有多个扩展名的目录中的文件,并仅复制这些特定文件(如果存在).代码片段如下所示: set -epushd ../../../../$3/code/project/common/ /dev/nullmkdir -p ../$2shopt -s nullglobfor file in *.gyp; do cp $
在bash中,我编写了一个函数,它使用通配符循环遍历具有多个扩展名的目录中的文件,并仅复制这些特定文件(如果存在).代码片段如下所示:

set -e

pushd ../../../../$3/code/project/common/ > /dev/null
mkdir -p ../$2
shopt -s nullglob

for file in *.gyp; do   cp $file ../$2/; done
for file in *.gypi; do  cp $file ../$2/; done
for file in *.sh; do    cp $file ../$2/; done
for file in *.patch; do cp $file ../$2/; done

popd > /dev/null

我宁愿在x语句中为文件写一个,这样我就不必为每个要复制的扩展复制和粘贴这一行.

如何将四个for语句重写为一个语句?如果可能的话,我想在那里保留* .ext通配符格式.

解决方法

你应该能做到的

for file in *.gyp *.gypi *.sh *.patch; do   cp $file ../$2/; done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读