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.txt를 사용하여 text.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

아니면 한 단계로 사용해 보세요.

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

관련 정보