
bashは、ターミナルから手動でbashを実行しない限り、ログインターミナルからファイルを読み込みません。私はbashを持っています(shやdashではありません)。ファイルを読み込むと、実行しない限り、エラー(「構文エラーが予期しないところにあります」など)が返されます。$ バッシュソース前
$echo $TERM
screen-256color
$echo $SHELL
/bin/bash
$shopt login_shell
login_shell on
エラー:
$source ./shrc
-bash: ./shrc: line 105: syntax error near unexpected token `('
$bash
$source ./shrc <-- now it works
何か案は?
アップデート1
bash を実行すると、non_login シェルに入り、動作します。ログイン シェルがファイルをソースできないのはなぜですか?
アップデート2
$echo $0
-bash
$bash
$echo $0
bash
アップデート3
else
echo;
echo "The SPEC environment variable is not set! Please source the shrc and try again."
echo;
fi
}
ogo() { <----- LINE 105
SHRC_NO_GO=0
TOP=$SPEC
if [ "x$TOP" != "x" ]; then
if [ "x$1" = "x--help" -o "x$1" = "x-h" ]; then
これは SPEC2006 ベンチマークのファイルです (よく知られているプログラムで、私のコードではありません)。私の推測では、これは正しいです。 (実際、ログインしていないシェルでは動作します)
答え1
$SHELL
現在のシェルではなく、デフォルトのシェルを保存します。echo $0
代わりに以下を試してください:
$ echo $SHELL
/bin/bash
$ echo $0
dash