2016-10-13 2 views
-1

Ce script tente de copier un fichier texte dans un autre répertoire. Je ne comprends pas pourquoi j'ai ce problème: ./move_in.sh: ligne 36: ls: commande introuvable Cela fonctionnait bien jusqu'à ce que j'ajoute les instructions if.ls: commande introuvable 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 

Je veux avoir le chemin complet du fichier lorsque le processus se termine, c'est pourquoi je LAST et PATH, et je les égalisent.

Répondre

1

Vous supprimez votre utilisation PATH $ PATH = $ PATH: ls n'est pas une commande par défaut, donc il doit être dans env PATH

+0

où je suis PATH $ Suppression? Et où dois-je utiliser PATH = $ PATH? – user5673573

+1

Une meilleure explication est que 'PATH' a déjà une signification définie pour le shell (il spécifie les répertoires à rechercher pour les commandes externes), et' PATH' (et tous les noms de toutes les majuscules) ne doit pas être utilisé pour votre propre fins. – chepner