使用 bash 测试字符串中是否有句点

use*_*394 7 bash string

我想对 Drupal 的 drush 命令行界面的输出运行 bash 命令。drush site-alias返回 webroot 列表,首先显示组的名称,然后显示该组中的每个站点。该站点本身的别名为group.site。例如,你可能会得到

内部 internal.site1 internal.site2 external external.site1 external.site2 营销营销.site1 营销.site2

我想对每个站点别名执行命令,但不想对组别​​名本身执行命令。我需要测试字符串中是否有句点,如果有,运行它:

for i in $(drush site-alias); do {if no period) drush $i command; done;
Run Code Online (Sandbox Code Playgroud)

我怎样才能运行这个测试?

cho*_*oba 12

您可以使用模式匹配:

for i in $(drush site-alias) ; do
    if [[ $i == *.* ]] ; then
        drush "$i" command
    fi
done
Run Code Online (Sandbox Code Playgroud)


Sté*_*las 6

使用任何类似 Bourne 的 shell,你可以这样写:

case $i in
  *.*) drush "$i" command;;
esac
Run Code Online (Sandbox Code Playgroud)