vi 편집기를 사용하여 echo "!#/bin/bash"의 출력을 다른 SH 파일로 리디렉션하는 방법

vi 편집기를 사용하여 echo "!#/bin/bash"의 출력을 다른 SH 파일로 리디렉션하는 방법

기본적으로 vi 편집기와 echo 명령을 사용하여 SH 파일 내에 또 다른 SH 파일을 만듭니다. 이것은 원본 SH 파일의 내용입니다 -

#!/bin/bash
echo "#!/bin/bash" > f1.sh
echo "echo "hello"" > f1.sh

f1은 echo 명령을 사용하여 쓰고 싶은 SH 파일인데 원본 파일을 실행하면 f1 파일은 #!bin/bash에 쓰지 않고 echo "hello" 명령만 씁니다. echo HASHBANG 명령을 echo \#\!/bin/bash로 작성해 보았으나 제대로 작동하지 않았습니다. 그렇다면 vi 편집기에서 echo 명령을 사용하여 #!bin/bash를 다른 SH 파일에 쓰는 방법은 무엇입니까?

답변1

대신 이 문서를 사용하세요.

#!/bin/bash

cat >f1.sh <<'SCRIPT_END'
#!/bin/bash
echo "hello"
SCRIPT_END

이는 쉘이 아무것도 방해하지 않고 그대로 스크립트를 전달하고 cat파일로 리디렉션합니다 f1.sh.

코드에 많은 문제가 있지만 리디렉션과 관련된 문제는 리디렉션을 f1.sh사용할 때마다 >파일을 자르거나 비운다는 것입니다. 이는 echo코드의 두 번째 코드가 첫 번째 코드가 파일에 쓴 데이터를 덮어쓴다는 의미입니다 echo.

또한 두 번째 줄의 인용문은 echo의미가 없습니다.

Vi 편집기는 이와 관련이 없습니다.

관련 정보