sh 스크립트에서 임시 파일을 찾을 수 없습니다

sh 스크립트에서 임시 파일을 찾을 수 없습니다

먼저 이 스크립트를 살펴보십시오.

touch test.txt
touch loc

echo "result1" > loc
loc >> test.txt

echo "result2" > loc
loc >> test.txt

rm loc

두 개의 파일을 만듭니다. 그 중 하나인 은 loc(는) 일시적인 것이므로 여기에 쓰려고 하는데 다음과 같은 오류 메시지가 나타납니다.

5: script.sh: loc: not found
8: script.sh: loc: not found

어떻게 작동하게 할 수 있나요?

답변1

loc명령이 아닙니다. cat loc >> test.txttext.txt에 추가하려면 사용해야 합니다 . 그렇지 않으면 임시 파일을 완전히 피할 수도 있습니다.

echo "result1" >> test.txt
echo "result2" >> test.txt

참고 touch test.txt로 쓸모없는 것 같습니다.

답변2

그러면 test.txt가 생성됩니다.

echo "result1" |  tee -a  test.txt
echo "result2" |  tee -a  test.txt

또는 이것을 1단계로 사용하세요

echo "result1" && echo "result2" |  tee -a  test.txt

답변3

리디렉션 연산자는 문자열 또는 문자 스트림을 입력측으로, 파일을 입력측으로 예상합니다. 따라서 cat명령을 사용하여 먼저 파일을 읽은 다음 스트림 문자를 출력 파일로 리디렉션해야 합니다.

touch test.txt
touch loc
echo "result1" > loc
cat loc >> test.txt
echo "result2" > loc
cat loc >> test.txt
rm loc

관련 정보