2016-10-13 305 views
-1

此脚本尝试将文本文件复制到另一个目录中。 我不明白为什么我有这个问题: ./move_in.sh:第36行:ls:命令未找到 它工作正常,直到我添加了if语句。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 

我想要的文件的完整路径,当过程完成后,这就是为什么我用LAST和路径,我平衡它们。

回答

1

您要删除$ PATH用PATH = $ PATH: LS是不是内置命令,所以它必须在PATH环境

+0

我在哪里删除$ PATH?我在哪里必须使用PATH = $ PATH? – user5673573

+1

更好的解释是'PATH'已经对shell有一个定义的含义(它指定了要寻找外部命令的目录),并且'PATH'(和所有全大写的变量名)不应该用于你自己的目的。 – chepner