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

linux – 用于循环通配符匹配目录的shell脚本

发布时间:2020-12-13 22:54:36 所属栏目:Linux 来源:网络整理
导读:我试图循环通过匹配通配符的目录.这在命令行中工作正常.但是在 Shell脚本中不起作用.任何的想法? for dirs in /var/www/html/my.domain.com/v*; do echo $dirs; done; 以上命令列出 /var/www/html/my.domain.com/v1.0 /var/www/html/my.domain.com/v1.2 /va
我试图循环通过匹配通配符的目录.这在命令行中工作正常.但是在 Shell脚本中不起作用.任何的想法?

for dirs in /var/www/html/my.domain.com/v*; do echo $dirs; done;

以上命令列出

/var/www/html/my.domain.com/v1.0
  /var/www/html/my.domain.com/v1.2
  /var/www/html/my.domain.com/v2.0

这是Shell脚本版本.它不起作用:

dirs=/var/www/html/my.domain.com/v*
 for dir in $dirs
 do
   echo "$dir"
 done

试过这个:

dirs=`/var/www/html/my.domain.com/v*` #back quotes
for dir in $dirs
do
   echo "$dir"
done

解决方法

像/var/www/html/my.domain.com/v*这样的 Glob patterns是一个bash功能.当您使用sh script.sh启动脚本时,bash似乎不是系统上的默认shell.

确保使用bash启动脚本:

bash script.sh

如果您要使用chmod x script.sh直接使脚本可执行,请确保您不会错过在第一行中使用以下shebang:

#!/bin/bash

(编辑:李大同)

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

    推荐文章
      热点阅读