저는 사용자가 자신의 설정을 텍스트 파일에 저장할 수 있는 스크립트를 만들고 있습니다. 저장된 설정을 사용하려면 설정 이름을 입력해야 합니다. 그런 다음 스크립트는 사용자의 입력을 비교하여 텍스트 파일에서 이름을 찾습니다. 일치하는 이름이 발견되면 해당 텍스트 파일에서 전체 줄을 추출합니다. 지금까지 내 코드는 다음과 같습니다.
echo enter setting name
read name
#count=0
while IFS= read line
do
if [ "$name" == "$settingName" ]
then
cp **/*"$ft1" $dir1
else
echo "file doesnt exist"
fi
done < preco.txt
변수를 저장하는 데 사용하는 코드는 다음과 같습니다.
echo save settings?
read decision
if [ "$decision" = "y" ]
then
echo enter settings name
read settingName
echo $settingName $dir1 $ft1 >> preco.txt
else
echo "bye"
exit
$dir1과 $ft1을 cp에 입력하고 싶습니다.
답변1
설정을 저장하는 코드에서 추측할 수 있지만 설정 파일의 예를 포함하면 좋을 것입니다.
코드의 한 가지 문제는 "$settingName"
.
매개변수에 공백이 없다고 가정하면 다음과 같이 작동합니다.
echo enter setting name
read name
found=false
while read settingName dir1 ft1
do
if [ "$name" == "$settingName" ]
then
cp "$ft1" $dir1
found=true
fi
done < preco.txt
if ! $found; then
echo "$name not found"
fi
이 문은 read settingName dir1 ft1
파일의 세 필드를 preco.txt
명명된 변수로 읽어옵니다.
또 다른 요점은 일치하지 않는 모든 줄에 대해 오류 메시지를 표시하고 싶지 않다는 것입니다. 파일을 읽고 일치하는 줄이 없는 경우에만 오류 메시지를 표시해야 합니다.