programing

Bash에서 변수에 대한 사용자 입력을 읽으려면 어떻게 해야 합니까?

powerit 2023. 4. 13. 21:12
반응형

Bash에서 변수에 대한 사용자 입력을 읽으려면 어떻게 해야 합니까?

Bash에서 변수에 대한 사용자 입력을 읽으려면 어떻게 해야 합니까?

fullname=""
# Now, read user input into the variable `fullname`.

사용방법:

# fullname="USER INPUT"
read -p "Enter fullname: " fullname
# user="USER INPUT"
read -p "Enter user: " user

사용자의 확인을 얻으려면 다음 절차를 따릅니다.

read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1

또한 경로 이름 확장 및 공백으로 단어 분할을 방지하기 위해 변수를 따옴표로 묶어야 합니다.

# passwd "$user"
# mkdir "$home"
# chown "$user:$group" "$home"

네, 다음과 같은 작업을 수행할 수 있습니다.

echo -n "Enter Fullname: " 
read fullname

또 다른 옵션은 명령줄에서 이 정보를 제공하는 것입니다.거기서 게톱츠 하는 게 최선이야

bash 셸 스크립트에서 getopts를 사용하여 긴 명령줄 및 짧은 명령줄 옵션 가져오기

이거 드셔보세요

#/bin/bash

read -p "Enter a word: " word
echo "You entered $word"

최대 휴대성(Bash, zsh 등):

printf "%s" "Enter fullname: "
read fullname

이것은 프롬프트를 읽을 때 가장 휴대성이 높은 방법입니다.다음과 같은 방법read -p그리고.echo -n셸에 따라서는 실패할 가능성이 높아집니다.

제니티도 시도해보세요!

user=$(zenity --entry --text 'Please enter the username:') || exit 1

https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html

표준 입력 또는 -u 옵션에 대한 인수로서 제공된 파일 기술자 fd로부터 1 행을 읽어, Word Spliting에서 상술한 대로 워드로 분할하고, 첫 번째 워드를 첫 번째 이름에, 두 번째 워드를 두 번째 이름에 할당하는 등의 순서로 한다.이름보다 단어가 많을 경우 나머지 단어와 해당 구분 기호가 성에 할당됩니다.

echo "bash is awesome." | (read var1 var2; echo -e "Var1: $var1 \nVar2: $var2")

bashvar1이 됩니다
is awesomevar2가 됩니다
echo -eUbuntu 매뉴얼에서 백슬래시 이스케이프를 해석할 수 있습니다.


따라서 전체 코드는 다음과 같습니다.

echo -n "Enter Fullname: "
read fullname
echo "your full name is $fullname."
echo -n "test type more than 2 word: "
read var1 var2; echo -e
read var1 var2; echo -e "Var1: $var1 \nVar2: $var2")

언급URL : https://stackoverflow.com/questions/18544359/how-do-i-read-user-input-into-a-variable-in-bash

반응형