Я новичок в оболочке, и мой код принимает два аргумента от пользователя.Я хотел бы подтвердить свои аргументы перед запуском остальной части кода.Я хотел бы, чтобы да для запроса кода, и если они набирают n для нет, то код снова будет запрашивать новые аргументы
В значительной степени, если я наберу что-нибудь, когда меня попросят подтвердить, остальноекода работает в любом случае.Я попытался вставить остальную часть кода после первого оператора then, но это тоже не сработало.Я также проверил свой код с ShellCheck, и все это выглядит как правильный синтаксис.Любой совет?
#!/bin/bash
#user passes two arguments
echo "Enter source file name, and the number of copies: "
read -p "Your file name is $1 and the number of copies is $2. Press Y for yes N for no " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "cloning files...."
fi
#----------------------------------------REST OF CODE
DIR="."
function list_files()
{
if ! test -d "$1"
then echo "$1"; return;
fi
cd ... || $1
echo; echo "$(pwd)":; #Display Directory name
for i in *
do
if test -d "$i" #if dictionary
then
list_files "$i" #recursively list files
cd ..
else
echo "$i"; #Display File name
fi
done
}
if [ $# -eq 0 ]
then list_files .
exit 0
fi
for i in "$@*"
do
DIR=$1
list_files "$DIR"
shift 1 #To read next directory/file name
done
if [ ! -f "$1" ]
then
echo "File $1 does not exist"
exit 1
fi
for ((i=0; i<$2; i++))
do
cp "$1" "$1$i.txt"; #copies the file i amount of times, and creates new files with names that increment by 1
done
status=$?
if [ "$status" -eq 0 ]
then
echo 'File copied succeaful'
else
echo 'Problem copying'
fi