쉘 스크립트에서 파일 작성, 쓰기 및 저장


10

파일을 수동으로 작성하고 싶지 않으므로 쉘 스크립트를 만들었습니다. 사용자가 키를 누르지 않아도 파일을 자동으로 쓰고 저장하는 방법이 있습니까?

sudo nano blah
#write stuff to file
#save file
#continue

^ 이것은 * .sh 파일 안에있을 것입니다

아니면 스크립트에서 간단한 텍스트 파일을 만드는 다른 방법이 있습니까?


1
나는 당신이 여기에 잘못된 질문을하고 있다고 생각합니다. nano와 같은 편집기를 제어하는 ​​것보다 프로그래밍 방식으로 파일에 쓰는 간단한 방법이 있습니다. 대신 파일로 무엇을 하시겠습니까?
워렌 힐

나는 단지 그것을 만들고 많은 줄을 쓰고 싶다.
Zarkopafilis

GUI 프로그램을 자동화 할 수있는 Autoit for Windows 와 같은 솔루션 이나 쉘 스크립트와 같은 텍스트를 작성하는 방법 등을 원 $echo "Some text" > afile.txt하십니까?
Stef K

@Zarkopafilis-질문을보다 명확하게하기 위해 질문을 편집했습니다. 내가 오해했다면 언제든지 되돌릴 수 있습니다. 나는 또한 당신을 위해 답변을 게시했습니다.
워렌 힐

답변:


14

보다 복잡한 명령 순서를 위해서는 here documentcat 와 함께 명령을 사용하는 것이 좋습니다 . 기본 형식은

command > file << END_TEXT
some text here
more text here
END_TEXT

END_TEXT 라벨의 인용 여부에 따라 두 가지 미묘한 동작이 있습니다.

  1. unquoted label : 일반적인 쉘 확장 후 내용이 기록됩니다

  2. 인용 라벨 : here 문서의 내용은 일반적인 쉘 확장없이 그대로 처리됩니다.

예를 들어 다음 스크립트를 고려하십시오.

#!/bin/bash

var1="VALUE 1"
var2="VALUE 2"

cat > file1 << EOF1
do some commands on "$var1" 
and/or "$var2"
EOF1

cat > file2 << "EOF2"
do some commands on "$var1" 
and/or "$var2"
EOF2

결과는

$ cat file1
do some commands on "VALUE 1" 
and/or "VALUE 2"

$ cat file2
do some commands on "$var1" 
and/or "$var2"

스크립트에서 쉘 명령을 출력하는 경우 인용 된 양식이 필요할 수 있습니다.


남자 나는 이것을 얼마나 오랫동안 검색 했습니까 ^^ 한 가지 질문 : 이것은 스크립트에서만 작동합니까, 아니면 쉘에서 직접 사용할 수도 있습니까?
derHugo

당신은 쉘에서 직접 사용할 수 있습니다 @derHugo -이 경우,을 생략하는 것이 더 일반적인 것 END_TEXT간단하게 사용하는 CTRL-D입력의 끝을 할 수 있습니다. 예를 들어 stdin 입력의 끝을 신호하는 방법
steeldriver

7

이를 위해 편집기를 망칠 필요가 없습니다.

간단한 에코 명령을 사용하여 파일에 무언가를 추가 할 수 있습니다. 예를 들어

echo "Hello World" >> txt

파일에 "Hello world"를 추가합니다 txt. 파일이 존재하지 않으면 파일이 생성됩니다.

또는 파일이 이미 존재하고 덮어 쓰려는 경우

echo "Hello World" > txt

첫 줄 :

echo "I'm feeling good" >> txt
echo "how are you" >> txt 

후속 라인.

가장 간단한 방법으로 .sh스크립트에는 에코 명령 세트 만 포함될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.