변수 서비스를 다음 값으로 설정하려고 합니다.
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
(가장 짧은 선행 하위 문자열 일치 제거 */
) 필요한 경우.