行7:[:missing `]'このエラーが発生します。どうすれば解決できますか?インデントしました[複製]

行7:[:missing `]'このエラーが発生します。どうすれば解決できますか?インデントしました[複製]
#!/bin/bash

until ["$userIn" = "j"]

      do
          echo "Welcome to the Menu_Script Program!"
          echo 
          echo "Menu Options"
          echo "Please Select an Option."
          echo 
          echo 
          echo "Press a to use the Emailer Program"
          echo 
          echo "Press b to Display the Users that are Currently Logged On"
          echo 
          echo "Press c to Display the Current Date and Time"
          echo 
          echo "Press d to Display the Months Calendar"
          echo 
          echo "Press e to Display the name of the Working Directory"
          echo 
          echo "Press f to Display the Contents of the Working Directory"
          echo 
          echo "Press g to Find the IP of a Web Address"
          echo 
          echo "Press h to See your Fortune"
          echo 
          echo "Press i to Display a file on the screen"
          echo 
          echo 
          echo "Press j to Exit this Menu"
          echo 
          echo "Press m to show the Menu Options again"
          echo 

          read mOption

          case "$mOption" in

               a|A)
                   echo "Welcome to the Emailer Program"
                   echo 
                   echo "Please enter the content of your message and press <ENTER>:"
                   read $mContent
                   echo 
                   echo "Please enter the email address of the recipient and press <ENTER>:"
                   read $mAddress
                   echo 
                   echo "Is there a file to be attached to this message? Press Y/N:"
                   read $ATTACH
                   echo 

if ["$ATTACH"="Y"|"y"]
                   then
                       echo "Please enter the name of the FILE to be attached:"
                       read $mAttach
                       mail -s "$mContent" "$mAddress"<"$mAttach"
                       echo 
                       echo "Your mail will be sent with the attachment."
                       echo 

                   else
                       mail -s "$mContent""$mAddress"
                       echo
                       echo "Your mail will be sent without an attachment."
                       echo 
                   fi
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               b|B)
                   echo "Here is a list of users that are currently logged on:"
                   w
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               c|B)
                   echo "The current date and time:"
                   date
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               d|D)
                   echo "Here is the current Months of the calendar:"
                   cal
                   echo
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               e|E)
                   echo "Here is the name of the Working Directory:"
                   pwd
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               f|F)
                   echo "Here is the Contents of the Working Directory"
                   ls
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               g|G)
                   echo "Please type a Web Address whose IP Address you"
                   echo "would like to find, then press <ENTER>:"
                   read $mWeb
                   echo 
                   echo "Here is the IP Address Information:"
                   nslookup $mWeb
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               h|H)
                   echo "Here is your Fortune for today!"
                   echo 
                   fortune
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               i|I)
                   echo "Please enter the name of the file that you want to be displayed:"
                   read $mFile
                   echo 
                   echo "Here is your file:"
                   cat $mFile
                   echo 
                   echo "Select a new Option, press j to Exit or m to show the Menu Options:"
                   echo 
                   ;;

               j|J)
                   echo "Thank you for using the Menu_Script Program!"
                   userIn = j
                   echo
                   ;;


               m|M)
                   echo "Menu Options"
                   echo "Please Select an Option:"
                   echo 
                   echo
                   echo "Press a to use the Emailer Program"
                   echo 
                   echo "Press b to Display the Users that are Currently Logged On"
                   echo 
                   echo "Press c to Display the Current Date and Time"
                   echo 
                   echo "Press d to Display the Months Calendar"
                   echo
                   echo "Press e to Display the name of the Working Directory"
                   echo 
                   echo "Press f to Display the Contents of the Working Directory"
                   echo 
                   echo "Press g to Find the IP of a Web Address"
                   echo 
                   echo "Press h to See your Fortune"
                   echo 
                   echo "Press i to Display a file on the screen"
                   echo 
                   echo 
                   echo "Press j to Exit this Menu"
                   echo 
                   echo "Press m to show the Menu Options again"
                   echo 
                   ;;
               *)
                   echo "Invalid Selection."
                   echo "Select a valid option, press j to Exit or m to show the Menu Options"
                   ;;

        esac
done

答え1

[命令だ。
したがって、他のコマンドと同様に、パラメータの後にスペースを追加して処理する必要があります。
努力するman [。端末にこれを入力すると、
エラーと同じ内容を示す明示的に名前付きバイナリ/コマンドがないと機能しません。echofooechofooechofoo: command not found.

答え2

開いている括弧の後にスペース記号を追加し、閉じ括弧の前にスペースを追加する必要があります。この行は:

if ["$ATTACH"="Y"|"y"]

になる(複数の記号を使用)

if [[ $ATTACH == [Yy] ]]

同じ

until ["$userIn" = "j"]

~になる

until [ "$userIn" = "j" ]

関連情報