
SRC
私は bash スクリプトにあまり詳しくないのですが、このプログラムでユーザーからディレクトリ パスを取得し、そのディレクトリが存在するかどうかを確認しようとしていました。関数内の変数がdir_input
に渡されていないようですdir_input
。よろしくお願いします。
dir_input() {
echo -n "Enter targer directory: "
read SRC
}
dir_input_check() {
if [ ! -d "$SRC" ]; then
echo ERROR: "Target directory not found - Please try again."
dir_input
fi
}
dir_input
dir_input_check
答え1
私にはうまくいったようです。
#!/bin/bash -x
トレースを取得するために上部にこれが表示されます(/tmp
返信で入力した場合)。
> ./foo
+ dir_input
+ echo -n 'Enter targer directory: '
Enter targer directory: + read SRC
/tmp
+ dir_input_check
+ '[' '!' -d /tmp ']'
したがって、SRC
は期待どおりに に渡されますdir_input_check
。おそらく、この例では何かが抜けている可能性があります。