. file
マニュアルページで指定された方法を使用してダッシュにファイルをインポートしようとしています。
. file The commands in the specified file are read and executed by the shell.
ただし、ファイルを使用してもエラーが発生します。お持ちですか?:
$ ls
defaults.sh run.sh
$ cat run.sh
#!/bin/sh
. defaults.sh
echo "VAR: $VAR"
$ cat defaults.sh
VAR=abc
$ bash run.sh
VAR: abc
$ dash run.sh
run.sh: 3: .: defaults.sh: not found
. defaults.sh
対話型ダッシュを使用しても同じことが起こります。
ここで私はどこで間違っていますか?
ベストアンサー1
./
一部のシェルでは、前に追加のパスまたは絶対パスが必要です。
. ./defaults.sh
追加したいかもしれません。run.sh
スクリプトの絶対パス、そうでない場合は、defaults.sh
ユーザーの場所から取得されます。
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
. "$SCRIPT_DIR"/defaults.sh