私はファイルマネージャであるスクリプトの作成を始めただけで、ユーザーに好みのテキストエディタを設定するように要求する機能を設定していますが、常にエラーメッセージが表示されます。
/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
2番目と3番目
editor ()
ただしなければならない
editor
括弧は関数定義にのみ必要です。
bashのパーサーは';'
欠落について文句を言います()
が、これは問題の一部です。
答え2
#!/bin/bash
Shebangとして使用されます。- 不要な
[ [
...] ]
"$answer" -eq "nano" && "vi" && "vim" && "emacs"
この4つの単語の答えはテストされていません。
機能定義
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人のうちの1人であることを確認してください。
- 値がエディタに返されます。
export $answer=
失敗(最初)または予期しない結果(次回)が発生する可能性があります$answer
編集者(または$answer "$myfile"
)に電話をかけるにはexport EDITOR=$answer
設定のために、- またはより良いです
export EDITOR=$(which $answer)
。