변수에 표준 출력 값 할당 [중복]

변수에 표준 출력 값 할당 [중복]

그래서 명령에서 가져온 값을 변수(이 경우 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=$(...). 그러나 일반적으로 말하면 명령 대체에는 따옴표가 필요합니다. 또한 후행 줄 바꿈을 먹습니다.

또한보십시오:

관련 정보