2016-10-13 10 views
-1

このスクリプトは、テキストファイルを別のディレクトリにコピーしようとします。 私はなぜこの問題を抱えているのかわかりません: ./move_in.sh:行36:ls:コマンドが見つかりません if文を追加するまではうまくいきました。私はLASTとPATHを使用する理由ls:コマンドが見つかりませんBASH

update_file=pwd 
echo "" 
echo "You can move a text file from your PC into the repository" 
echo "" 
echo "You need to know where is your text file" 
cd/
ls 
times=1 
echo "" 
echo "Where is your text file?" 
read directory 

while [ -d $directory ] 
do 
echo $times 
if [ $times == 1 ] 
then 
LAST=$directory 
fi 

if [ $times != 1 ] 
then 
LAST=$PATH/$directory 
fi 

cd $directory 
ls 
echo "" 
echo "Where is your text file?" 
read directory 
PATH=$LAST 
echo $PATH 
times=$((times + 1)) 
done 

PATH=$PATH/$directory 
echo $PATH 
open $PATH 
cp $PATH /\$update_file 
echo "You found the text file!" 
exit 0 

プロセスが終了したときに、私は、ファイルの完全なパスを持っていると思いますが、thatsの、と私はそれらを均等化。あなたの$ PATH使用PATH = $ PATHに削除されている

答えて

1

: lsが組み込みコマンドではないので、PATH環境Iが$ PATHを削除しています

+0

でなければなりませんか?そして、どこでPATH = $ PATHを使う必要がありますか? – user5673573

+1

'PATH'はすでにシェルに定義された意味を持っています(外部コマンドを探すディレクトリを指定しています)。' PATH'(とすべて大文字のすべての変数名)を自分で使うべきではありません目的。 – chepner

関連する問題