当我运行脚本时:
#!/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
正如评论中提到的,脚本是在子 shell 中执行的,因此目录不会更改。您可以使用.
或获取脚本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
例如,您可以将其添加到您的 中。另请注意,在内部使用不带引号的变量[ ]
很容易出错。