읽기 명령어 : 사용자가 입력했는지 확인하는 방법

사용자가 입력했는지 확인하기 위해 if else 문을 만들려고합니다. 명령을 통해 실행되어야하며 그렇지 않은 경우 도움말 문을 에코하고 싶습니다.

코멘트

  • read, 일반적으로 스크립트가 진행되기 전에 사용자가 Enter를 눌러야합니다. 그런 다음 입력을 테스트 할 수 있습니다 …

Answer

예 (상당히 쉬움)는 다음과 같습니다. 다음 코드가 포함 된 userinput 파일이 생성됩니다.

#!/bin/bash # create a variable to hold the input read -p "Please enter something: " userInput # Check if string is empty using -z. For more "help test" if [[ -z "$userInput" ]]; then printf "%s\n" "No input entered" exit 1 else # If userInput is not empty show what the user typed in and run ls -l printf "You entered %s " "$userInput" ls -l fi 

bash 학습을 시작하려면 다음 링크를 확인하는 것이 좋습니다. http://mywiki.wooledge.org/

답변

사용자가 특정 문자열을 입력했는지 알고 싶다면 다음이 도움이 될 수 있습니다.

#!/bin/bash while [[ $string != "string" ]] || [[ $string == "" ]] # While string is different or empty... do read -p "Enter string: " string # Ask the user to enter a string echo "Enter a valid string" # Ask the user to enter a valid string done command 1 # If the string is the correct one, execute the commands command 2 command 3 ... ... 

답변

다중 선택이 유효한 경우 정규 표현식 과 일치하도록 while 조건을 만듭니다.

예 :

#!/bin/bash while ! [[ "$image" =~ ^(rhel74|rhel75|cirros35)$ ]] do echo "Which image do you want to use: rhel74 / rhel75 / cirros35 ?" read -r image done 

세 가지 선택 사항 중 하나를 입력 할 때까지 계속 입력을 요청합니다.

댓글

  • 선택 항목을 다음 항목으로 제한하는 것이 문제인 경우 bash에서 select 문을 사용하는 것이 좋습니다. 옵션.
  • @Kusalananda는 -1 대신 실제 예제를 제공합니다! 내 제안이 잘 작동합니다. 당신의 제안이 좋은 것임을 보여주십시오. ' 할 수 있기 때문에 -1을주지 마십시오. ' 다른 독자에게는 도움이되지 않습니다.
  • 여기에 ' 예가 있습니다. select image in rhel74 rhel75 cirros35; do [ -n "$image" ] && break; done
  • @Kusalananda 이제 매우 유용합니다. 감사합니다! $ image가 이미 설정되어있는 경우 전체 선택을 건너 뛰려면 [ -z "$image" ] && select ...를 추가해야합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다