Google을 검색하여 작성한 다음 스크립트가 있으며 Linux 시스템을 아카이브에 백업합니다.
#!/bin/bash
# init
DATE=$(date +20%y%m%d)
tar -cvpzf /share/Recovery/Snapshots/$HOSTNAME_$DATE.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/dev --exclude=/share/Archive /
이것은 효과가 있지만 스크립트를 여러 줄에 걸쳐 명령을 표시하도록 형식화 할 수 있는지 궁금합니다. 따라서 나중에 쉽게 편집 할 수 있습니다.
tar -cvpzf /share/Recovery/Snapshots/$HOSTNAME_$DATE.tar.gz
--exclude=/proc
--exclude=/lost+found
--exclude=/sys
--exclude=/mnt
--exclude=/media
--exclude=/dev
--exclude=/share/Archive
/
그렇게하면 나중에 읽고 편집하기가 더 쉽습니다. 이런 식으로 Bash 스크립트를 포맷 할 수 있습니까?
답변
각 줄의 끝에 “\”를 추가하기 만하면됩니다.
그래서 당신은 다음과 같이 보일 것입니다 :
tar -cvpzf /share/Recovery/Snapshots/$(hostname)_$(date +%Y%m%d).tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/sys \
--exclude=/mnt \
--exclude=/media \
--exclude=/dev \
--exclude=/share/Archive \
/
몇 가지 단축키
($ HOSTNAME 설정을위한 귀하의 의견 업데이트에 근거)
$HOSTNAME
이를 설정하는 두 가지 옵션 :
-
HOSTNAME 설정
HOSTNAME = $ (호스트 이름)
-
(예를 들어, 명령 치환을 사용
$(command)
)위와 같이 보일 것입니다. 사용하기 전에 명령이 실행되도록합니다.
$DATE
피할 수있는 또 다른 변수는 다음과 같습니다.
$(hostname)_$(date +%Y%m%d).tar.gz \
$ man date
날짜 옵션 형식이 있으며 위는 YYYYmmdd입니다.
답변
백 슬래시를 사용하여 다음 행에서 명령을 계속하십시오.
tar -cvpzf /share/Recovery/Snapshots/$HOSTNAME_$DATE.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/sys \
--exclude=/mnt \
--exclude=/media \
--exclude=/dev \
--exclude=/share/Archive \
/
답변
동일한 명령이지만 각 줄에 주석이있는 경우는 다음과 같습니다.
tar -cvpzf /share/Recovery/Snapshots/$(hostname)_$(date +%Y%m%d).tar.gz `#first comment` \
--exclude=/proc `#second comment` \
--exclude=/lost+found `# and so on...` \
--exclude=/sys \
--exclude=/mnt \
--exclude=/media \
--exclude=/dev \
--exclude=/share/Archive \
/