Shell 脚本读取文件路径直到文件存在
Shell script read file path until file exisits
用户输入文件路径,shell脚本必须检查文件是否存在,如果文件不存在,提示输入正确的路径,直到提供正确的路径。这是我的尝试,我不喜欢它
if [[ -z $filepath || ! -f $filepath ]]; then
printf "\nError: File does not exist. Try again\n"
while true :
do
read -p "Please provide file path: " filepath
if [[ -z $filepath || ! -f $filepath ]]; then
continue
else
break
fi
done
fi
这是另一个由于语法错误而失败的尝试
if [[ -z $filepath || ! -f $filepath ]]; then
printf "\nError: Bad file path. Try again\n"
while true :
do
read -p "Please enter file path: " filepath
case $filepath in
"")
echo "Bad file path. Try again"
continue ;;
! -f)
echo "Bad file path. Try again"
continue ;;
*)
break ;;
esac
done
我认为您只需要在文件不存在时进行 while
循环。你可以做类似的事情,
read -p "Please provide file path: " filepath
while [[ ! -f "$filepath" ]]; do
printf "Bad file path ($filepath). Try again\n"
read -p "Please provide file path: " filepath
done
printf "$filepath exists\n"
怎么样
until [[ -n $filepath && -f $filepath ]]; do
read -p "Please provide file path: " filepath
done
用户输入文件路径,shell脚本必须检查文件是否存在,如果文件不存在,提示输入正确的路径,直到提供正确的路径。这是我的尝试,我不喜欢它
if [[ -z $filepath || ! -f $filepath ]]; then
printf "\nError: File does not exist. Try again\n"
while true :
do
read -p "Please provide file path: " filepath
if [[ -z $filepath || ! -f $filepath ]]; then
continue
else
break
fi
done
fi
这是另一个由于语法错误而失败的尝试
if [[ -z $filepath || ! -f $filepath ]]; then
printf "\nError: Bad file path. Try again\n"
while true :
do
read -p "Please enter file path: " filepath
case $filepath in
"")
echo "Bad file path. Try again"
continue ;;
! -f)
echo "Bad file path. Try again"
continue ;;
*)
break ;;
esac
done
我认为您只需要在文件不存在时进行 while
循环。你可以做类似的事情,
read -p "Please provide file path: " filepath
while [[ ! -f "$filepath" ]]; do
printf "Bad file path ($filepath). Try again\n"
read -p "Please provide file path: " filepath
done
printf "$filepath exists\n"
怎么样
until [[ -n $filepath && -f $filepath ]]; do
read -p "Please provide file path: " filepath
done