Ich versuche, ein WordPress-Caching-Plugin auf allen Seiten zu installieren, die derzeit kein Caching-Plugin enthalten. Ich laufe alle cPanel-Benutzer durch, bekomme aber einige seltsame Ergebnisse, wenn ich sie ausführe. Motto ist:bash for loop keine Ergebnisse zu geben
for i in $(ls -I . -I .. /var/cpanel/users) ; do
WPPATH=$(find /home/$i/public_html/ -type f -name wp-config.php)
WPPLUGINPATH="$(echo "${WPPATH//wp-config.php/wp-content/plugins/}")"
cd $WPPLUGINPATH
[ -d $WPPLUGINPATH*cache* ] || \
wp --allow-root plugin install cache-enabler --skip-plugins --skip-themes
sleep 3
chown -R $i: $WPPLUGINPATH
echo $WPPLUGINPATH
done
Es funktioniert für die meisten aber immer zufällige Hits wie:
/home/userC/public_html/wp-content/plugins/
Error: This does not seem to be a WordPress install.
Pass --path=`path/to/wordpress` or run `wp core download`.
chown: missing operand after ‘userA:’
Try 'chown --help' for more information.
können Sie sehen etwas weg ist als der Weg für BenutzerC noch chown Referenzierung wird erroring über userA
Es gibt auch an, dass es keine WP-Installation gibt, aber wenn ich manuell zu diesem Verzeichnis cd, kann ich den wp-cli-Befehl ausführen und das Plugin ohne Problem installieren.
Ein weiterer Fehler:
/home/userA/public_html/wp-content/plugins/
-bash: [: /home/userB/public_html/wp/wp-content/plugins/: binary operator expected
Warning: cache-enabler: Plugin already installed.
Success: Plugin already installed.
Jede Hilfe wird sehr
Sie sollten nicht verwenden 'für (ls ...' siehe [** Bash PItfalls **] (http://mywiki.wooledge.org/BashPitfalls#for_i_in_.24.28ls_.2A.mp3.29) –
Auch relevant: [Warum sollten Sie nicht die Ausgabe von 'ls' analysieren] (http://mywiki.wooledge.org/ParsingLs) und [Zeilen mit 'for' nicht lesen] (http://mywiki.wooledge.org/DontReadLinesWithFor). –
Verwenden Sie auch' set -x', um zu sehen, was Ihre Skripte sind tun in der Praxis, wird Ihnen im Allgemeinen helfen, bessere Fragen zu diesem Verhalten zu stellen. –