次のように、環境変数を設定する abc.sh という単純なスクリプトがあります。
#!/bin/bash
sourcePath () {
filename=`basename $0`
current_dir="./"$filename
if [ "$current_dir" = "$0" ]; then SRC_DIR=$(pwd)
SRC_DIR=$(cd "$SRC_DIR/.."; pwd)
else SRC_DIR=$(cd "$(dirname "$0")/.."; pwd)
fi
}
sourcePath
echo $SRC_DIR
export SRC_DIR
このスクリプトで、現在のシェル環境で変数 SRC_DIR を設定したいと考えています。したがって、ソースabc.shを実行すると、dirnameへのオプションが無効であるというエラーが表示されます。しかし、このファイルを./abc.shで実行すると、エラーは発生しませんが、変数はエクスポートされません