다른 변수가 포함된 bash 변수를 설정하는 방법은 무엇입니까? [복사]

다른 변수가 포함된 bash 변수를 설정하는 방법은 무엇입니까? [복사]

변수 서비스를 다음 값으로 설정하려고 합니다.

var1=first/second
echo $var1 | cut -d '/' -f 1
var2=$var1 | cut -d '/' -f 1"
echo $var2

결과 echo $var1 | cut -d '/' -f 1는 "first"입니다. 맞습니다. 그러나 그 결과를 다른 변수로 설정할 수는 없습니다. 위의 예에서 var2는 비어 있습니다.

문자열의 이전 부분이 \var2의 값으로 반환되도록 3행의 올바른 구문은 무엇입니까?

답변1

명령 대체를 사용할 수 있습니다

var2=$(echo "$var1" | cut -d '/' -f 1)

하지만 이 경우에는 쉘의 매개변수 대체를 직접 사용하는 것이 더 좋습니다:

$ var2=${var1%/*}
$ echo "$var2"
first

(가장 짧은 후행 하위 문자열 일치 제거 /*) 및

$ var3=${var1#*/}
$ echo "$var3"
second

(가장 짧은 선행 하위 문자열 일치 제거 */) 필요한 경우.

관련 정보