O Ubuntu cron.daily retorna um erro de caminho quando um shell glob é usado - o que há de errado com o meu caminho?

1

No Ubuntu 16.04, este é o código que eu tenho em /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

Eu configurei isso ontem e hoje recebi esse erro no meu e-mail:

/etc/cron.daily/cron_daily:

/etc/cron.daily/cron_daily: line 3: pushd: /var/www/html/*/: No such file or directory

Por que isso está acontecendo? Eu suponho que as marcas de citação impedem a globalização da concha, mas em caso afirmativo, o que deve substituí-las?

    
por JohnDoea 19.03.2018 / 12:32

2 respostas

3

Estender o caminho com * não funciona entre aspas duplas.

Você poderia tentar assim:

#!/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
    
por 19.03.2018 / 12:41
4

A expansão do caminho não funciona nas aspas duplas.

Teste simples:

$ 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
    
por 19.03.2018 / 12:38

Tags