이 코드를 실행하는 데 문제가 있습니다. 누구든지 아이디어가 있습니까?
#! /bin/bash
while :
do
echo "Enter file name along with absolute path : "
read -r inputFile
echo "Enter path you would like to save copy of the file : "
read -r pathinput
path=$pathinput
if ((-f "$inputFile" ; -d "$pathinput" ))
then
cp -p $inputFile $path
break
else
echo "File does not exist. Try again."
fi
done
echo " Job Done"
답변1
내 관심을 끌었던 두 가지 사항은 다음과 같습니다.
if ((-f "$inputFile" ; -d "$pathinput" ))
bash 산술과 테스트가 혼합된 것 같습니다. 당신이하고 싶은 일은 :if [[ -f $inputFile && -d $pathinput ]]
cp -p $inputFile $path
VScp -p "$inputFile" "$path"
더 많은 인용문을 사용하세요!
쉘에서 올바르게 인용하는 방법을 배우는 것은 매우 중요합니다.
공백/메타 문자를 포함하는 모든 리터럴은 "큰따옴표"로 처리합니다.모든확장:
"$var"
,"$(command "$var")"
,"${array[@]}"
,"a & b"
.'single quotes'
코드나 텍스트$'s: 'Costs $5 US'
에 대해서는ssh host 'echo "$HOSTNAME"'
을 참조하십시오.
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
사용을 고려해보세요https://www.shellcheck.net/언뜻 보면 쉘에 문제가 있을 때