logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Drush त्रुटि दिखाता है: 'source' को सपोर्ट करने के लिए bash का समर्थन करें, और यदि यह bash के साथ नहीं चलता है तो $0 पर फ़ॉलबैक करें

02/09/2025, by Ivan

मेरे पास बहुत बड़ी संख्या में कॉन्फ़िग फाइलें हैं और मैं आमतौर पर PHP के लिए मेमोरी लिमिट अक्षम करने के लिए निम्न कमांड का उपयोग करता हूँ:

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

लेकिन इस बार मुझे एक त्रुटि प्राप्त हुई:

# 'source' को सपोर्ट करने के लिए bash का समर्थन करें, और यदि यह bash के साथ नहीं चलता है तो $0 पर फ़ॉलबैक करें
# 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)/*)
            dir=$(cygpath -m "$dir");
            ;;
    esac
fi

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

bashSource="$BASH_SOURCE"
if [ -n "$bashSource" ]; then
    if [ "$bashSource" != "$0" ]; then
        source "${dir}/drush" "$@"
        return
    fi
fi

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

आप इस त्रुटि से बच सकते हैं यदि आप --php-options के माध्यम से memory_limit=-1 पास करें:

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

क्यों php -d memory_limit=-1 vendor/bin/drush … अब विफल हो रहा है

जब आप php के माध्यम से फाइल को जबरन चलाते हैं, तो आप PHP इंटरप्रेटर से एक bash स्क्रिप्ट को पार्स करने को कहते हैं:

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

PHP वफादारी से पहले गैर-PHP लाइन (# Support bash …) को निष्पादित करने का प्रयास करता है और तुरंत क्रैश हो जाता है, जिससे स्क्रिप्ट का स्रोत स्क्रीन पर प्रदर्शित होता है — ठीक वही आउटपुट जो आपने देखा।

यह बदलाव Drush 13.3 में पेश किया गया था और अपस्ट्रीम इश्यू “Running drush as php script fails after updating from 13.2.0” में इसका उल्लेख है।