Ubuntu cron.daily は Shell glob を使用するとパスエラーを返します。私のパスに何が問題ですか?

Ubuntu cron.daily は Shell glob を使用するとパスエラーを返します。私のパスに何が問題ですか?

Ubuntu 16.04では、これは私のコードです/etc/cron.daily/cron_daily

#!/bin/bash
for dir in "/var/www/html/*/"; do
if pushd "$dir"; then
wp plugin update --all --allow-root
wp core update --allow-root
wp language core update --allow-root
wp theme update --all --allow-root
rse
popd
fi
done

昨日これを設定しましたが、今日のメールに次のエラーが表示されました。

/etc/cron.daily/cron_daily:

/etc/cron.daily/cron_daily: 行3: プッシュ: /var/www/html/*/: 対応するファイルまたはディレクトリなし

なぜこれが起こるのですか?引用符がシェルワイルドカードを防止すると仮定します。それでは、それを置き換えるために何を使うべきですか?

答え1

二重引用符内では、パス拡張は機能しません。

簡単なテスト:

$ ls -ld /lib*
drwxr-xr-x 23 root root 4096 Jul 14  2017 /lib
drwxr-xr-x  2 root root 4096 Jun 21  2017 /lib64

$ ls -ld "/lib*"
ls: cannot access '/lib*': No such file or directory

答え2

*を使用したパス拡張は、二重引用符内では機能しません。

次のことを試すことができます。

#!/bin/bash
for dir in /var/www/html/*/; do
  if pushd "$dir"; then
    wp plugin update --all --allow-root
    wp core update --allow-root
    wp language core update --allow-root
    wp theme update --all --allow-root
    rse
   popd
  fi
done

関連情報