スクリプトを実行するとき:
#!/bin/bash
DRUPAL_ROOT=$(drush status root --format=list)
if [ -z $DRUPAL_ROOT ]
then
echo -e "Not exists Drupal core"
else
echo $DRUPAL_ROOT
cd $DRUPAL_ROOT
fi
出力:
# /right/drupal/root
しかし道は変わらなかった
端末でコマンドを実行すると:
# DRUPAL_ROOT=$(drush status root --format=list)
# cd $DRUPAL_ROOT
変更確認
どんなアイデアがありますか?ありがとうございます。
答え1
コメントで述べたように、スクリプトはサブシェルで実行されるため、ディレクトリは変更されません。.
スクリプトを使用、インポート、またはsource
そのための関数を作成できます。
drup_cd() {
DRUPAL_ROOT=$(drush status root --format=list)
if [[ ! $DRUPAL_ROOT ]]; then
echo -e "Not exists Drupal core"
else
echo "$DRUPAL_ROOT"
cd "$DRUPAL_ROOT"
fi
}
.bashrc
たとえば、アカウントに追加できます。また、内部的に引用符を持たない変数を使用すると[ ]
エラーが発生しやすくなります。