shell EOF

4068 단어 Linux
linux 에서 EOF 쓰기 빗질
 
평소에 운영 하 는 작업 에서 우 리 는 이런 장면 을 자주 만 날 수 있다. 스 크 립 트 를 실행 할 때 한 파일 에 N 줄 의 내용 을 자동 으로 입력 해 야 한다.소수의 몇 줄 의 내용 이 라면 echo 추가 방식 도 사용 할 수 있 지만 많은 줄 이 라면 단순히 echo 추가 방식 으로 는 어 리 석 어 보인다!이 럴 때 EOF 를 cat 명령 과 결합 해 줄 내용 을 추가 할 수 있다.
다음은 EOF 의 용법 을 정리 하 겠 습 니 다. EOF 는 END Of File 의 줄 임 말로 사용자 정의 종료 자 를 표시 합 니 다. 사용자 정의 라면 EOF 는 고정된 것 이 아니 라 별명 을 마음대로 설정 할 수 있 습 니 다. Liux 에서 ctrl - d 를 누 르 면 EOF. EOF 는 일반적으로 cat 에 맞 춰 여러 줄 의 텍스트 출력 을 할 수 있 습 니 다. 그 용법 은 다음 과 같 습 니 다. 사용자 정의: cat 를 통 해 방향 을 바 꾸 면 파일 을 생 성하 고 추가 작업 을 할 수 있 습 니 다. 그 전에 몇 가지 특수 기 호 를 익 힐 수 있 습 니 다. <: 입력 방향 바 꾸 기 >: 출력 방향 바 꾸 기 >>: 출력 방향 바 꾸 기, 추가, 이전 내용 을 덮어 쓰 지 않 습 니 다 <<: 표준 입력 은 명령 행 에서 온 한 쌍 의 구분자 의 중간 내용 입 니 다.
다음은 구체 적 인 사례 를 통 해 EOF 용법 의 묘 미 를 느 낄 수 있 습 니 다. 1) 파일 test. sh 에 내용 을 입력 하 십시오.[root@slave-server opt]# cat << EOF >test.sh > 123123123> 3452354345> asdfasdfs> EOF[root@slave-server opt]# cat test.sh 1231231233452354345asdfasdfs
추가 내용 [root@slave-server opt]# cat << EOF >>test.sh > 7777> 8888> EOF[root@slave-server opt]# cat test.sh 1231231233452354345asdfasdfs77778888
덮어 쓰기 [root@slave-server opt]# cat << EOF >test.sh> 55555> EOF[root@slave-server opt]# cat test.sh 55555
2) 사용자 정의 EOF, 예 를 들 어 사용자 정의 wang [root@slave-server opt]# cat << wang > haha.txt> ggggggg> 4444444> 6666666> wang[root@slave-server opt]# cat haha.txt ggggggg44444446666666
3) 스 크 립 트 를 작성 하여 한 파일 에 여러 줄 의 내용 을 입력 할 수 있 습 니 다 [root@slave-server opt]# touch/usr/local/mysql/my.cnf              //파일 을 미리 만 들 지 않 아 도 됩 니 다. 존재 하지 않 으 면 EOF 명령 에서 도 자동 으로 생 성 됩 니 다 [root@slave-server opt]# vim test.sh#!/bin/bash
cat >/usr/local/mysql/my.cnf << EOF                                      //또는 cat < EOF >/usr/local/mysql/my. cnf [client] port = 3306 socket =/usr/local/mysql/var/mysql. sock
[mysqld]port = 3306socket =/usr/local/mysql/var/mysql.sock
basedir =/usr/local/mysql/datadir =/data/mysql/datapid-file =/data/mysql/data/mysql.piduser = mysqlbind-address = 0.0.0.0server-id = 1sync_binlog=1log_bin = mysql-bin
[myisamchk]key_buffer_size = 8Msort_buffer_size = 8Mread_buffer = 4Mwrite_buffer = 4M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES port = 3306EOF
[root@slave-server opt]# sh test.sh          //위의 스 크 립 트 실행 [root@slave-server opt]# cat/usr/local/mysql/my.cnf    //스 크 립 트 의 EOF 가 [client] port = 3306 socket =/usr/local/mysql/var/mysql. sock 에 기록 되 었 는 지 확인 합 니 다.
[mysqld]port = 3306socket =/usr/local/mysql/var/mysql.sock
basedir =/usr/local/mysql/datadir =/data/mysql/datapid-file =/data/mysql/data/mysql.piduser = mysqlbind-address = 0.0.0.0server-id = 1sync_binlog=1log_bin = mysql-bin
[myisamchk]key_buffer_size = 8Msort_buffer_size = 8Mread_buffer = 4Mwrite_buffer = 4M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES port = 3306
자동 으로 새 파 티 션 을 만 들 고 마 운 트 하 는 스 크 립 트 를 공유 합 니 다.
?
1
2
3
4
5
6
7
8
9
10
11
12
13 [root@es-node1 ~] # cat auto_add_disk.sh          #!/bin/bash fdisk /dev/sdb < n p 1
 
  wq EOF
  /sbin/mkfs .ext4 /dev/sdb1 &&  /bin/mkdir -p /data && /bin/mount /dev/sdb1 /data echo 'LABEL=data_disk /data ext4 defaults 0 2' >> /etc/fstab
* * * * * * * * * * * * * * * * * 자신의 재능 이 야망 을 버 티 지 못 하 는 것 을 발견 하면 조용히 공부 하 세 요 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

좋은 웹페이지 즐겨찾기