この小さなbashスクリプトがあります。
readonly imagick_extension=$(cat "${php_configuration_file}" | grep imagick)
echo "Imagick extension grep value: $imagick_extension"
if [ "${imagick_extension}" != "extension=imagick.so" ]; then
echo "ERROR: Imagick PHP extension is not enabled!"
exit 1
fi
echo "Imagick PHP extension is enabled."
出力は次のとおりです
Imagick extension grep value: extension=imagick.so
ERROR: Imagick PHP extension is not enabled!
どうやってこれができますか?
変数の値を示します。はい
extension=imagick.so
、しかし、まだif句を入力してください。満足する場合にのみif句を入力する必要があります。いいえ
extension=imagick.so
よろしくお願いします!
答え1
ここでの問題は、Windowsで生成されたPHPプロファイルがあることです。したがって、行末はUNIX標準LFではなくCR / LFです。
echo
次のようにコマンドを変更してこれを実演できます。
echo "Imagick extension grep value: < $imagick_extension >"
のようにコメント出力の最後のスペースが行の>
先頭にあることがわかります。これは実際には値に改行文字が含まれていることを示します。
>agick extension grep value: extension=imagick.so
簡単な解決策は、ファイルをUNIX形式に変換することです。
dos2unix /path/to/php_configuration_file.ini
または、単純なコマンドがない場合は、dos2unix
次のsed
選択肢を使用できます。
sed -i 's/\r//' /path/to/php_configuration_file.ini
UNIXとLinuxの他の場所に重複した答えがあると確信していますが、見つかりません。これまでに私が得た最も近いのは、より詳細な情報を提供する関連項目です。