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