logo

Palette - Mach es bunt🎨

Palette - Visueller Page Builder. Keine Designkenntnisse nötig.

Live-Demo Palette herunterladen

Scroll

Drush zeigt Fehler: Unterstützen Sie bash, um 'source' zu unterstützen, mit Rückgriff auf $0, falls dies nicht mit bash ausgeführt wird.

04/06/2025, by Ivan

Ich habe eine große Anzahl von Konfigurationen und führe normalerweise den Config-Import mit php -d memory_limit=-1 aus (um das PHP-Speicherlimit zu deaktivieren):

php -d memory_limit=-1 ./vendor/bin/drush config-import -y

Aber dieses Mal erhielt ich einen Fehler:
 

# Unterstützt bash, um 'source' zu ermöglichen, mit Rückgriff auf $0, falls dies nicht mit bash ausgeführt wird
# https://stackoverflow.com/a/35006505/6512
selfArg="$BASH_SOURCE"
if [ -z "$selfArg" ]; then
    selfArg="$0"
fi

self=$(realpath $selfArg 2> /dev/null)
if [ -z "$self" ]; then
    self="$selfArg"
fi

dir=$(cd "${self%[/\\]*}" > /dev/null; cd ../drush/drush && pwd)

if [ -d /proc/cygdrive ]; then
    case $(which php) in
        $(readlink -n /proc/cygdrive)/*)
            # Wir sind in Cygwin und verwenden Windows-PHP, daher muss der Pfad übersetzt werden
            dir=$(cygpath -m "$dir");
            ;;
    esac
fi

export COMPOSER_RUNTIME_BIN_DIR="$(cd "${self%[/\\]*}" > /dev/null; pwd)"

# Wenn bash diese Datei sourced, müssen wir auch das Ziel sourcen
bashSource="$BASH_SOURCE"
if [ -n "$bashSource" ]; then
    if [ "$bashSource" != "$0" ]; then
        source "${dir}/drush" "$@"
        return
    fi
fi

"${dir}/drush" "$@"

Sie können diesen Fehler vermeiden, wenn Sie memory_limit=-1 als php-options übergeben:

./vendor/bin/drush --php-options='-d memory_limit=-1' config-import -y

Warum php -d memory_limit=-1 vendor/bin/drush … jetzt fehlschlägt

Wenn Sie die Datei direkt durch php ausführen, weisen Sie den PHP-Interpreter an, ein Bash-Skript zu parsen:

php -d memory_limit=-1 ./vendor/bin/drush status

PHP versucht dann, die erste Nicht-PHP-Zeile (# Unterstützt bash …) auszuführen, und bricht sofort ab, wobei der Quelltext des Wrappers ausgegeben wird. Genau das ist die Ausgabe, die Sie gesehen haben. Die Änderung wurde in Drush 13.3 eingeführt und im Upstream-Issue „Running drush as php script fails after updating from 13.2.0“ diskutiert.