![변수에 표준 출력 값 할당 [중복]](https://linux55.com/image/138338/%EB%B3%80%EC%88%98%EC%97%90%20%ED%91%9C%EC%A4%80%20%EC%B6%9C%EB%A0%A5%20%EA%B0%92%20%ED%95%A0%EB%8B%B9%20%5B%EC%A4%91%EB%B3%B5%5D.png)
그래서 명령에서 가져온 값을 변수(이 경우 n)에 넣는 sh 스크립트를 만들려고 합니다. 하지만 제가 무엇을 하고 있는지 전혀 모르겠고 분명히 작동하지 않습니다. 하하:
1 n=0
2 cat test | grep -cE '[0-9]{1,4}' > $n
3 echo "there were $n lines in test" > rtest1
"0 line in test"라는 rtest1 파일을 생성합니다.
그런데 Test는 10줄짜리 파일입니다.
그렇다면 stdout의 값을 쉘 스크립트의 변수에 어떻게 할당합니까? :디
답변1
당신이 원하는 것은 호출됩니다명령 대체:
file=./path/to/some/file
n="$(grep -cE '[0-9]{1,4}' < "$file")"
echo "there were $n matching lines in $file"
물론 과제에는 따옴표가 필요하지 않습니다 n=$(...)
. 그러나 일반적으로 말하면 명령 대체에는 따옴표가 필요합니다. 또한 후행 줄 바꿈을 먹습니다.
또한보십시오: