(1) Shell 스 크 립 트 프로 그래 밍 기초 의 논리 적 판단 과 스 크 립 트 테스트
대화 식 로그 인:
(1) 터미널 을 통 해 계 정 비밀 번 호 를 입력 하고 로그 인 (2) "su - UserName"으로 전환 하 는 사용자 실행 순서:/etc/profile -->/etc/profile. d/*. sh --> ~/. bashprofile --> ~/.bashrc -->/etc/bashrc
비 대화 식 로그 인:
(1) su UserName (2) 그래 픽 인터페이스 에서 열 린 터미널 (3) 실행 스 크 립 트 (4) 다른 bash 인 스 턴 스 실행 순서: ~/bashrc --> etc/bashrc -->/etc/profile. d/*. sh
bash 프로필 적용 범위
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
~/.bash_profile
~/.bashrc
vim 등 텍스트 편집 도 구 를 이용 하여 텍스트 파일 을 만 드 는 첫 줄 은 셸 성명 서열 을 포함해 야 합 니 다:\#!예 를 들 면:
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
2. 스 크 립 트 파일 실행
먼저 텍스트 파일 권한 부여:
chmod +x $name.sh
스 크 립 트 파일 을 직접 실행 합 니 다./$PATH/$name. sh 또는 $shell./$PATH/$name. sh. 다음은 소 백 이 간단 한 스 크 립 트 파일 형식 을 간단하게 썼 습 니 다.\#!/bin/bash [ $# -gt 1 ] && { echo "must be a arg ";exit;} [ $# == 0 ] && read -p "please input script name: "name || name=$1 [ -e $name ] && { echo "the file is exist , please return the script and input another name"; exit ; } touch $name echo "#!/bin/bash # author:wangnan # mailbox:*********@163.com # QQ:******** # blog:http://www.jianshu.com/u/fb9ec5da4a64 # description:this is for wang # echo "Your working directory is: $(pwd) "# date
date
">"$name"chmod +x "$name"vim $name unset name 이 스 크 립 트 의 기능 은 스 크 립 트 템 플 릿 을 만 드 는 것 입 니 다. 먼저 스 크 립 트 를 실행 할 때 파 라 메 터 를 추가 할 지 여 부 를 판단 하고 추가 하지 않 으 면 종료 합 니 다. 추가 하면 이름 이 같 을 지 여 부 를 판단 하고 같은 경우 다른 이름 으로 이름 을 바 꾼 다음 실행 권한 제한 을 자동 으로 추가 하고 이 스 크 립 트 를 엽 니 다. unset3. 디 버 깅 스 크 립 트
스 크 립 트 의 문법 오류 검출
bash -n /$PATH/$name.sh
디버그 실행
bash -x /$PATH/$name.sh
4. 논리 연산
연산 1 과 1 = 1 과 0 = 0 과 1 = 0 과 0 = 0 과 0 = 0 과 0 = 0
또는 연산 1 또는 1 = 1 또는 0 = 10 또는 1 = 10 또는 0 = 0
비 연산!!1 = 0 ! 0 = 1
단락 연산
단락 과 & & 조건 성 을 대표 하 는 AND THEN 의 첫 번 째 는 0 이 고, 결 과 는 0 이 어야 합 니 다. 첫 번 째 는 1 이 고, 두 번 째 는 연산 에 참여 해 야 합 니 다.
단락 또는 | | 조건 성 을 대표 하 는 OR ELSE 의 첫 번 째 는 1 이 고 결 과 는 반드시 1 번 째 는 0 이 며 두 번 째 는 연산 에 참여 해 야 합 니 다.
grep -q no_such_user /etc/passwd || echo 'No such user'
ping -c1 -W2 station1 &> /dev/null&& echo "station1 is up" || (echo 'station1 is unreachable'; exit 1)
5. test 명령 을 이용 한 테스트 기능
시스템 위의 일부 파일 이나 관련 속성 을 검사 하려 면 test 라 는 명령 을 사용 하 십시오. 예 를 들 어/testfile 파일 이 존재 하 는 지 확인 하려 면 다음 을 사용 하 십시오.
test -e /testfile
실행 결 과 는 아무런 메시지 도 표시 되 지 않 지만, 마지막 으로 $를 통과 할 수 있 습 니까?또는 & & 및 | | 모든 결 과 를 보 여 줍 니 다!예 를 들 어 우 리 는 위의 예 를 이렇게 바 꾸 었 다.
test -e /testfile && echo "exist" || echo "Not exist"
최종 결 과 는 우리 에 게 "exist"인지 "Not exist"인지 알려 줄 수 있 습 니 다!그러면 저 는 - e 가 '파일' 이 존재 하 는 지 테스트 하 는 것 임 을 알 고 있 습 니 다. 만약 에 테스트 를 하려 면 우리 가 선택 할 수 있 는 옵션 이 많 습 니 다!
대표 적 의미
- e (동 - a)
이 '파일 이름' 이 존재 합 니까?
-f
이 '파일 이름' 이 존재 하고 파일 (file) 인지 여부
-d
이 '파일 이름' 이 존재 하고 디 렉 터 리 (directory) 인지 여부
-c
존재 하 는 지 여부 및 문자 장치 파일 (character device)
-d
디 렉 터 리 파일 이 존재 하 는 지 여부
-f
존재 하고 일반 파일 인지 여부
- h (또는 - L)
존재 하고 심 볼 릭 링크 파일
-p
존재 하 는 지, 소켓 파일 인지 여부
-r
존재 하고 읽 을 수 있 는 지 여부
-w
존재 하고 쓸 수 있 는 지 여부
-x
존재 하고 실행 가능 한 지 여부
-u
존재 하고 suid 권한 이 있 는 지 여부
-g
존재 하고 sgid 권한 이 있 는 지 여부
-k
존재 하고 sticky 권한 이 있 는 지 여부
-s
존재 하 는 지, 비어 있 지 않 은 지 여부
-t fd
fd 는 파일 설명자 가 열 려 있 고 터미널 과 관련 이 있 는 지 여 부 를 표시 합 니 다.
-N
파일 이 자동 으로 읽 힌 후에 수정 되 었 는 지 여부 입 니 다.
-O
현재 유효한 사용자 가 파일 소유자 인지 여부
-G
현재 유효한 사용자 가 파일 그룹 인지 여부
대표 적 의미
==
여부
>
ascii 코드 가 ascii 코드 보다 큰 지 여부
<
작 을 지 여부
!=
여부
=~
왼쪽 문자열 이 오른쪽 PATTERN 과 일치 할 수 있 는 지 여부 () P: 이 표현 식 은 [[]] 에 사 용 됩 니 다.확 장 된 정규 표현 식)
-z
문자열 이 비어 있 는 지, 비어 있 는 지, 비어 있 지 않 은 지, 가짜 입 니 다.
-n
문자열 이 비어 있 지 않 은 지, 비어 있 지 않 은 지, 비어 있 지 않 은 지 여부 입 니 다.
대표 적 의미
-gt
보다 큰 지 여부
-ge
같다
-eq
여부
-ne
여부
-lt
작 을 지 여부
-le
... 인지 아 닌 지
대표 적 의미
-ef
같은 장치 의 같은 inode 를 가리 키 는 지 여부
-nt
이전 파일 보다 새 것 인지 여부
-ot
이전 파일 보다 오래된 지 여부
filetest1 -ef filetest2: filetest1 与filetest2 是否指向同一个设备上的相同inode
filetest1 -nt filetest2: filetest1 是否新于 于filetest2
filetest1 -ot filetest2: filetest1 是否旧于 于filetest2
[ -z “$HOSTNAME” -o $HOSTNAME "=="localhost.localdomain" ] && hostname www.magedu.com
[ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.