셸 학습 의 셸 실행 방식 및 오류

셸 프로그램 구성: 변수 설정: 내장 명령: 셸 의 문법 구조: 함수 및 기타 명령 행 프로그램 으로 구성
셸 의 실행 방식
예제 스 크 립 트 (1 부터 100 까지 의 합 계산):
[root@lovelace 51cto]# cat sum.sh
#!/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This program is and calculate from 1 to 100
#define i an integer
declare -i sum=0
#loop and from 1 to 100
for x in {1..100};do
let sum+=x
let x++
done
echo "The sum is:" $sum

1. 상대 경로 에서 스 크 립 트 를 실행 하고 셸 을 줍 니 다. scripts 실행 권한, 그리고 scripts 스 크 립 트 가 있 는 디 렉 터 리 로 전환 하여 scripts 를 실행 합 니 다. /
#           
[root@lovelace 51cto]# ll sum.sh
-rwxr-xr-x 1 root root 217 05-20 12:37 sum.sh
#       
[root@lovelace 51cto]# chmod +x sum.sh ; ./sum.sh
The sum is: 5050

2. 절대 경로 실행
#                      
[root@lovelace 51cto]# pwd
/home/scripts/51cto
[root@lovelace 51cto]# /home/scripts/51cto/sum.sh
The sum is: 5050

3. 직접 bash 또는 sh 를 사용 하여 scripts 를 실행 하 는 방식 으로 스 크 립 트 를 실행 할 때 미리 권한 을 부여 할 필요 가 없습니다.
#               sh bash     
[root@lovelace 51cto]# sh sum.sh
The sum is: 5050
[root@lovelace 51cto]# bash sum.sh
The sum is: 5050
#         ,   sh bash      
[root@lovelace 51cto]# chmod -x sum.sh ; ll sum.sh
-rw-r--r-- 1 root root 231 05-20 12:52 sum.sh
[root@lovelace 51cto]# bash sum.sh
The sum is: 5050
[root@lovelace 51cto]# sh sum.sh
The sum is: 5050

이 스 크 립 트 는 현재 셸 아래 에서 키 셸 을 열 고 하위 셸 에서 이 스 크 립 트 를 실행 합 니 다. 스 크 립 트 가 실 행 된 후에 해당 하 는 하위 셸 4 를 닫 고 현 행 셸 에서 스 크 립 트 를 실행 합 니 다. /홈 / test / 51cto / test. sh. 와 / 사이 에 최소한 빈 칸 이 있어 야 합 니 다. (이 형식 은 스 크 립 트 호출 에서 흔히 볼 수 있 습 니 다) 참조 ~ /. bashprofile 스 크 립 트 파일
[root@lovelace 51cto]# cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

소스 실행 스 크 립 트 사용    source scriptsname.sh
[root@lovelace 51cto]# source sum.sh
The sum is: 5050

 
bash  셸 오류
여기 서 우 리 는 아래 의 오 류 를 만족 시 키 기 위해 스 크 립 트 를 약간 수정 합 니 다. 우 리 는 done 을 don 으로 수정 합 니 다.
#!/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This program is and calculate from 1 to 100
#define i an integer
declare -i sum=0
#loop and from 1 to 100
for x in {1..100};do
let sum+=x
let x++
don
echo "The sum is:" $sum

bash 오류: 1, bash  -v  scriptsname.sh  :문법 검사 명령  15 줄 근처에 문법 오류 가 있 음 을 알려 주 었 으 나 구체 적 으로 어떤 줄 이 잘못 되 었 는 지 는 지정 되 지 않 았 습 니 다.
[root@lovelace 51cto]# bash -v sum.sh
#!/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This program is and calculate from 1 to 100
#define i an integer
declare -i sum=0
#loop and from 1 to 100
for x in {1..100};do
let sum+=x
let x++
don
echo "The sum is:" $sum
sum.sh: line 15: syntax error: unexpected end of file

 
2、bash -n  scriptsname.sh  :프로그램 줄 보기  문법 오류 메시지 만 되 돌려 줍 니 다.
[root@lovelace 51cto]# bash -n sum.sh
sum.sh: line 15: syntax error: unexpected end of file

3、bash -x scriptsname.sh :추적 실행 과정  이것 은 오류 배열 에서 가장 자주 사용 되 는 것 입 니 다. (오류 가 있 으 면 아래로 실행 하지 않 고 바로 오 류 를 출력 합 니 다) 그러나 편폭 이 큰 스 크 립 트 파일 에 대해 서 는 잘못 배열 하 는 것 도 번 거 로 운 일 입 니 다.
[root@lovelace 51cto]# bash -x sum.sh
+ declare -i sum=0
sum.sh: line 15: syntax error: unexpected end of file

4. 특정 위치 에 echo 설치: for 순환 에 echo 추가 “print test "인쇄 에 성공 하 였 습 니 다. 앞의 문장 이 모두 문제 가 없다 는 것 을 설명 합 니 다.
[root@lovelace 51cto]# bash -x sum.sh
+ declare -i sum=0
+ echo 'print test'
print test
sum.sh: line 16: syntax error: unexpected end of file

5. shopt 정의 변 수 는 변 수 를 정의 하지 않 고 변 수 를 사용 하 는 것 을 피 할 수 있 습 니 다.
shopt  -s: 옵션 사용 하기 -u: 닫 기 옵션 -o: 사용 및 set -o 같은 옵션 으로 설정 -q: 스위치 상 태 를 표시 하지 않 고 전송 상 태 를 판단 합 니 다. 0 은 활성화 되 고 0 이 아 닌 것 은 닫 음 을 표시 합 니 다.
6. 한 단계 로 실행 하고 명령 줄 에서 스 크 립 트 에 쓸 파일 을 모두 실행 한 다음 스 크 립 트 에 기록 하여 오 류 를 줄 입 니 다.
[root@lovelace 51cto]# declare -i sum=0
[root@lovelace 51cto]# for x in {1..100};do let sum+=x;let x++;echo $sum;done

7, 사용 함수 감소 오류 범위 8, set -x, 스 크 립 트 에 줄 추가: set -x  이 기능 은 유사 합 니 다. bash -x scripts 실행 효과
[root@lovelace 51cto]# cat sum.sh
#!/bin/bash
#Verson:0.1
#Auther:lovelace
#Pragram:This program is and calculate from 1 to 100
#           
set -x
[root@lovelace 51cto]# ./sum.sh
+ declare -i sum=0
+ echo 'print test'
print test
./sum.sh: line 16: syntax error: unexpected end of file

팁: 어떤 때 는 우리 가 scripts 를 편집 할 때 저장 되 지 않 은 상황 이 발생 할 수 있 습 니 다. 이 때 는 이 scripts 를 열 때마다 많은 정보 가 팝 업 됩 니 다. 귀 찮 습 니 다. 이 때 는 이 스 크 립 트 의 편집 디 렉 터 리 아래 에 스 크 립 트 명령 과. swp 접미사 의 숨겨 진 파일 을 찾 아 이 숨겨 진 파일 을 삭제 하면 됩 니 다.
기타: scripts 에 서 는 빈 칸 이 중요 할 때 가 많 습 니 다. 그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
set :설정 bash 셸 의 속성 은 인자 와 옵션 을 추가 하지 않 으 면 모든 셸 변수 와 함수 의 내용 을 표시 합 니 다.    -o: 어떤 옵션 열기    +o: 어떤 옵션 닫 기
후기: 셸 스 크 립 트 의 작성 과 오 류 는 모두 상대 적 인 것 입 니 다. 모든 사람 은 자신 이 정리 한 오 류 를 정리 하 는 방법 이 있 습 니 다. 하지만 스 크 립 트 를 처음 쓰 는 형제들 이 쓸 때 가능 한 한 명령 행 에서 실행 할 문 구 를 실행 한 다음 에 스 크 립 트 를 쓰 는 것 을 권장 합 니 다. 그러면 시간 이 낭비 되 지만 목적 없 이 오 류 를 찾 는 것 보다특히 큰 스 크 립 트 문 서 를 작성 할 때.

좋은 웹페이지 즐겨찾기