4

我正在尝试遍历与通配符匹配的目录。这在命令行中工作正常。但不适用于 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
4

1 回答 1

3

像这样的全局模式/var/www/html/my.domain.com/v*bash功能。似乎 bash 不是您系统上的默认 shell,因为您使用sh script.sh.

确保使用 bash 启动脚本:

bash script.sh

如果您打算直接使用 使脚本可执行chmod +x script.sh,请确保您没有错过在第一行中使用以下shebang :

#!/bin/bash
于 2013-04-11T17:15:46.193 回答