계속 오류가 발생합니다( lab2.sh: line 7: syntax error at line 15: `)' unexpected
)
#! /bin/sh
echo "M - Month of the year"
echo "S - Sleep for 10 seconds"
echo "E - Make the file executable"
echo "Please input a letter (M,S, or E): \c"
read code
case $code in
M) date +%B ;;
S) sleep 10 ;;
E) echo "ENter file name: \c"
read fname
chmod 755 $fname
*)
echo "Error" ;;
esac
답변1
마지막 명령을 제외하고 중간 패턴을 따르는 모든 명령 세트는 case ... esac
종료되어야 합니다.;;
당신은 가지고 있어야
M) date +%B ;;
S) sleep 10 ;;
E) echo "ENter file name: \c"
read fname
chmod 755 "$fname" ;;
*) echo "Error" >&2
$fname
또한 공백과 특수 문자가 포함된 파일 이름을 처리할 수 있도록 따옴표를 사용 하고 진단 메시지는 표준 오류( 로 리디렉션됨 >&2
)로 이동해야 합니다.
메뉴에도 사용할 수 있으며 파일에서 select
실행할 때는 더욱 주의해야 합니다 .chmod
#!/bin/bash
select ch in \
'Exit' \
'Month of the year' \
'Sleep for 10 seconds' \
'Make a file executable'
do
case $REPLY in
1) break ;;
2) date +'The current month is %B' ;;
3) echo 'Sleeping for 10 seconds'
sleep 10 ;;
4) read -r -p 'Enter file name: ' fname
if [ ! -f "$fname" ]; then
printf 'No such file: %s\n' "$fname"
else
chmod +x "$fname"
fi
;;
*) echo 'Error' >&2
esac
done
echo 'Bye!'