내 생각은 변수의 일부 값을 분리하는 것입니다. 다음은 필요한 출력을 얻지 못하는 스크립트의 예입니다. 이 아이디어에 대한 제안 사항이 있나요?
A=12-13-14
IFS="-" read -p I J K <<<$A
echo Lin number is $I
echo Michele Number is $J
echo Gina number is $K
내 예상 결과는 다음과 같습니다
Lin number is 12
Michele number is 13
Gina number is 14
답변1
bash
를 사용하고 계시기 때문에 '여기에 문자열'( )을 사용하고 계신 것 같습니다 <<<
. 또한 일부 다른 셸에서는 read -p
보조 프로세스에서 읽는 일이 발생합니다. 이는 코드가 주석에서 말한 것과 다른 결과를 생성한다는 것을 의미합니다. 그래서 그것은 매우 가능합니다 bash
.
유틸리티 -p
의 옵션은 옵션 매개변수를 사용합니다. 이 옵션 매개변수는 사용자에게 값을 요청할 때 대화형 프롬프트로 사용되는 문자열입니다. 코드에서 프롬프트는 문자열이 되고 변수 sum에는 표준 입력(문자열)을 통해 데이터가 할당됩니다. 그렇기 때문에 빈 문자열입니다.read
bash
I
J
K
read
$A
$I
echo
$ read -p 'Enter value: ' thing
Enter value: hello
$ printf '%s\n' "$thing"
hello
-r
대신에 다음과 같은 것을 사용할 것이라고 가정합니다 -p
.
A=12-13-14
IFS='-' read -r I J K <<<"$A"
printf 'Lin number is %s\n' "$I"
printf 'Michele Number is %s\n' "$J"
printf 'Gina number is %s\n' "$K"