![다른 변수가 포함된 bash 변수를 설정하는 방법은 무엇입니까? [복사]](https://linux55.com/image/149838/%EB%8B%A4%EB%A5%B8%20%EB%B3%80%EC%88%98%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20bash%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
변수 서비스를 다음 값으로 설정하려고 합니다.
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
(가장 짧은 선행 하위 문자열 일치 제거 */
) 필요한 경우.