나는 단지 파일 관리자인 스크립트를 작성하기 시작했고 사용자에게 선호하는 텍스트 편집기를 설정하도록 요청하는 기능을 설정하고 있는데 항상 오류 메시지가 표시됩니다.
/home/user/bin/manager: line 12: syntax error near expected token 'fi'
/home/user/bin/manager: line 12: 'fi'
코드는 다음과 같습니다.
#!bash/bin
#File managing shell
editor() {
read -p "What file editor would you like to use? (Nano) or (Vi)m " answer
export $answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
if [ [ "$answer" -eq "nano" && "vi" && "vim" && "emacs" ] ]
then
editor="$answer"
else
echo "This is embarassing, I didn't understand your input..."
editor ()
fi
}
echo -e "" #this area tells the user he commands and etc. it takes forever to type...
sleep 1
editor()
내가 놓친 것이 있나요?
감사해요
답변1
두 번째와 세 번째
editor ()
그냥 해야 해
editor
괄호는 함수 정의에만 필요합니다.
bash의 파서는 ';'
누락에 대해 불평 ()
하지만 이는 문제의 일부일뿐입니다.
답변2
#!/bin/bash
Shebang 으로 사용됩니다 .- 불필요한
[ [
...] ]
"$answer" -eq "nano" && "vi" && "vim" && "emacs"
이 네 단어 답변은 테스트되지 않습니다.
기능 정의
while read -p "What file editor would you like to use? (Nano) or (Vi)m " answer
do
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
case $answer in
( nano | vi | vim | emacs )
$answer ;
## OR
export EDITOR=$answer
break
;;
( * )
echo "This is embarassing, I didn't understand your input..."
;;
esac
done
- 답변이 유효한 편집자 4명 중 하나인지 확인합니다.
- 값이 편집기에 반환됩니다.
export $answer=
실패(처음)하거나 예상치 못한 결과(다음 번)가 발생할 수 있음$answer
편집자(또는$answer "$myfile"
) 에게 전화를 걸 려면export EDITOR=$answer
설정을 위해 ,- 아니면 더 좋습니다
export EDITOR=$(which $answer)
.