Linux Shell 스 크 립 트 프로 그래 밍 주의사항

상용 기교
ssh user@server bash < /path/to/local/script.sh
#ssh ,

ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
#

vim scp://username@host//path/to/somefile
#vi

curl ifconfig.me
# ip

echo ${#a}
#

FUNCNAME
# ,
2.변수 이름 1.변수 이름 전후 규칙 통일
COUNT=
Sum=
2.의미 없 는 문자 나 숫자 를 피한다.예 를 들 어 아래 18 은 어떤 의 미 를 대표 하 는 지 누가 알 겠 는가

#------------------- -------------------
if [[ $count -gt 18 ]]
then
commmand
fi
#----------------------------------------------

#------------------- -------------------
Process_Limit=18
if [[ $count -gt ${Process_Limit} ]]
then
commmand
fi
#----------------------------------------------
전역 변 수 는 스 크 립 트 가 초기 화 될 때 정의 한다.보통 일부 설정 매개 변수 이다.가능 한 한 전역 변 수 를 적 게 사용 합 니 다.4.함수 내의 국부 변 수 는 local 성명 을 사용 합 니 다

func_test_1()
{
local test=1
echo $test
}
5.변 수 를 합 쳐 야 의미 가 있 을 때,예 를 들 어 파일 경로 등 을 조합 한 값 을 변 수 를 부여 하 십시오.이렇게 하면 나중에 수정 하기에 편리 합 니 다

log_dir=/opt/log
log_name=website.log
#------------------- -------------------
if [[ ! -f ${log_dir}/mam/${log_name} ]]
then
touch ${log_dir}/mam/${log_name}
fi
#----------------------------------------------

#------------------- -------------------
log_file=${log_dir}/${log_name}
if [[ ! -f ${log_file} ]]
then
touch ${log_file}
fi
#----------------------------------------------
6.이상 판단 하여 변수 이름 이 존재 하 는 지 판단 하고 입력 변수 에 대해변수 이름 의 합 법성 을 판단 해 야 합 니 다

#------------------- -------------------
rm -rf ${path}/*
#----------------------------------------------

 
#------------------- -------------------
if [ -d "${path}" ]
then
rm -rf ${path}/*
fi
#----------------------------------------------
7.이중 괄호 의 사용[[]셸 의 이중 괄호 는 많은 역할 을 합 니 다

#----------------------------------------------

if [[ Yes =~ Y|y ]]
then
echo matched
fi
#----------------------------------------------

#----------------------------------------------
, if , []
if [[ $aaa == 1 ]]
then
echo matched
else
echo "no such variable"
fi
#----------------------------------------------
8.ctrl+n 보충 변수 이름 을 사용 합 니 다.변수 이름 의 이름 이 길 면 손 입력 이 잘못 되 기 쉽 고 복사 가 너무 번 거 로 우 면 ctrl+n 보충 변수 이름 을 사용 하여 수 동 입력 으로 인 한 변수 이름 오 류 를 피 할 수 있 습 니 다.
3.임시 파일 은 임시 파일 을 사용 하지 않도록 합 니 다.임시 파일 을 사용 하려 면 파일 이름 에 스 크 립 트 pid 를 추가 하고 스 크 립 트 가 종료 되 기 전에 임시 파일 mktemp 명령 을 제거 하면 임시 파일 tmp 를 만 들 수 있 습 니 다.file_name=$(mktemp TMP.XXXXX)이 명령 은 TMP.XXXXX(그 중 XXXXX 는 6 비트 랜 덤 코드)라 는 파일 을 생 성 합 니 다.이렇게 하면 스 크 립 트 가 병행 할 때 임시 파일 이름 의 충돌 을 피 할 수 있 습 니 다.코드 스타일 1.첫 번 째 줄 설명 해상도 기

#!/bin/bash
두 번 째 줄 가 져 오기 환경 변수

. ~/.bash_profile ( cron )
스 크 립 트 자체 경 로 를 찾 는 많은 스 크 립 트 가 시작 디 렉 터 리 를 정의 하지 않 았 습 니 다.이렇게 하면 스 크 립 트 가 현재 디 렉 터 리 에서 만 실 행 될 수 있 습 니 다.
4.조건문 과 순환 문 스타일 은 셸 의 통 일 된 형식 을 사용 합 니 다

#------------------- -------------------
if [[ ]] ;then
command1
fi
while [[ ]] ;do
command2
done
#----------------------------------------------

#------------------- -------------------
if [[ ]]
then
command1
fi

while [[ ]]
do
command2
done
#----------------------------------------------
5.들 여 쓰기,TAB 나 빈 칸 을 사용 합 니 다.두 가 지 를 혼용 하지 말고 기술자 가 경험 이 풍부 한 지 확인 하고 싶 습 니 다.그러면 그의 전자 파일 이력 서 를 보 세 요.TAB 와 빈 칸 이 혼용 되 었 는 지 확인 하 세 요.
6.주석 이 없 는 스 크 립 트 를 추가 하면 유지 하기 어 려 울 것 입 니 다.물론 의미 없 는 주석 도 피해 야 합 니 다

#------------------- -------------------
# 3 load_limit
load_limit=3
#----------------------------------------------
, ?

#------------------- -------------------
#
load_limit=3
#----------------------------------------------
5.인터페이스 화 프로 그래 밍 은 여러 스 크 립 트 가 작업 을 조율 해 야 할 때 각 모듈 의 기능 에 따라 해당 하 는 인 터 페 이 스 를 정의 해 야 합 니 다.예 를 들 어 여러 스 크 립 트 가 같은 프로필 의 설정 을 읽 어야 합 니 다.그러면 이 수 요 를 하나의 독립 된 스 크 립 트 로 만 들 고 각 스 크 립 트 는 이 인터페이스 스 크 립 트 를 사용 하여 설정 파일 형식 을 수정 할 때이 인터페이스 만 고치 면 돼 요.

좋은 웹페이지 즐겨찾기