하나의 읽기 명령으로 두 개의 변수를 읽고 별도로 에코하는 방법은 무엇입니까?

하나의 읽기 명령으로 두 개의 변수를 읽고 별도로 에코하는 방법은 무엇입니까?

예를 들어:

사용자가 A=a를 입력하기를 원합니다.

내 주문이 완전히 잘못된 것 같아요.


read -p "Enter something:" frsstring=secstring
echo $frsstring
echo $secstring
````````````````````````````````````````````````````````````




답변1

배열 변수를 사용 bash하고 IFS(내부 필드 구분자) 특수 변수를 변경하여 =일반적으로 단어를 분할하기 위한 공백 문자, 탭 및 개행 문자를 포함할 수 있습니다.

IFS='=' read -a arr -p "Enter something: "
echo "${arr[0]}"
echo "${arr[1]}"

아니면 쉘을 사용할 수도 있습니다매개변수 확장문자열에서 가장 긴 접미사 및 접두사 패턴을 제거합니다.

read -p "Enter something: " str
echo "${str%%=*}" # remove longest suffix pattern `=*`
echo "${str##*=}" # remove longest prefix pattern `*=`

답변2

하나의 명령으로 이를 수행하는 방법을 모르지만 전체 줄을 읽은 다음 필요한 변수로 나눌 수 있습니다.

#!/bin/bash

read -p "Enter something:" line
frsstring=`echo "$line" | cut -f1 -d'='`
secstring=`echo "$line" | cut -f2 -d'='`


echo $frsstring
echo $secstring

도움이 되었으면 좋겠습니다

관련 정보