Linux - shell 기초 - 1
자동화 관리의 중요 한 근거 추적 과 관리 시스템 의 중요 한 업무 에 따라 간단하게 침입 하 는 검 측 도구 연락 명령 을 단일 화하 고 간단 한 데이터 처리 크로스 플랫폼 지원
셸 script 은 시스템 관리 에 있어 서 좋 은 도구 이지 만 대량의 데이터 연산 을 처리 하 는 데 있어 서 좋 지 않 습 니 다.
명령 의 실행 은 위 에서 아래로, 왼쪽 에서 오른쪽으로 명령 옵션 과 매개 변수 사이 의 여러 공백 은 무 시 됩 니 다. 공백 줄 은 무 시 됩 니 다. tab 는 하나의 빈 칸 으로 간주 합 니 다. Enter (CR) 를 읽 으 면 이 줄 명령 을 실행 하려 고 합 니 다. 한 줄 의 명령 이 너무 많 으 면\Enter 를 사용 하여 다음 줄 로 확장 합 니 다.\# 주석 으로 사용 할 수 있 습 니 다.
절대 경로/상대 경로/bash 프로그램 으로 sh/bash 를 실행 합 니 다. sh 의 인자 - n 및 - x 를 이용 하여 셸 문법 이 정확 한 지 확인 합 니 다.
첫 줄\#!/빈/bash 우 리 는 bash 를 사용 하기 때문에 반드시\#!/bin/bash 는 파일 의 문법 을 bash 문법 주석 줄 을 사용 합 니 다.\# 첫 줄 을 제외 하고 다른\# 는 주석 기능 의 주요 환경 변수의 선언 입 니 다. 일부 중요 한 환경 변 수 를 PATH 와 LANG 로 설정 하 는 것 이 가장 중요 합 니 다.프로그램 이 외부 명령 을 직접 내 릴 수 있 기 때문에 절대 경 로 를 쓸 필요 가 없다.
내 export/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games "
#!/bin/bash
# program:test example 01
# , =
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
echo -e 'HELLO WORLD ! \a
'
exit 0
명령 실행 성공 여 부 를 확인 하고 사용 할 수 있 습 니까?이 변 수 는 echo 를 관찰 합 니까?출력
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p 'please input you first name:' firstname
read -p 'please input you last name:' lastname
echo "
you name is : $firstname $lastname"
exit 0
fuhui@ubuntu:~/script$ find -name 'file*' | xargs rm
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
echo "i will use touch command to create 3 file \a
"
read -p "please input your filename:" filename
filename=${filename:-"filelog"}
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 days ago' +%Y%m%d)
date3=$(date +%Y%m%d)
file1=${filename}${date1} #
file2=${filename}${date2}
file3=${filename}${date3}
touch "$file1"
touch "$file2"
touch "$file3"
exit 0
$(계산식)
변수 교체 A = B echo ${A} B 출력 BB
echo $$(3 * 2) 를 직접 사용 하여 계산 식 을 진행 합 니 다.
echo $$(3 * 2) 를 직접 사용 하여 계산 식 을 진행 합 니 다.
source 와 bash 가 실행 하 는 서로 다른 효과: 1. bash 는 하위 프로 세 스에 서 실 행 됩 니 다. 설 정 된 변 수 는 실행 한 후에 방출 됩 니 다. 2. source 가 환경 에서 설정 한 변 수 는 여전히 존재 합 니 다. (그러나 시스템 연결 이 끊 겼 습 니 다. ctrl + d 와 유사 한 효과)
우 리 는 $를 인출 한 적 이 있 습 니까?이 대표 적 인 뜻 은 그 밖 에 & & 및 | | 을 통 해 이전 명령 으로 전송 값 을 실행 하여 걷 기 후의 명령 을 36826 ℃ 로 실행 해 야 하 는 지 에 대한 근거 이기 도 합 니 다.
test
test -e /ls
test -e /lss && echo 'exist' || echo 'no exist'
test -z string , , true
test -n string , , true
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p 'please input a filename: ' file
test -z $file && echo "input can't be empty" && exit 0
test ! -e $file && echo "the $file do not exist" && exit 0
test -f $file && filetype='regular file'
test -d $file && filetype='directory'
test -w $file && perm="$perm writable"
test -x $file && perm="$perm executable"
echo "the filename: $file is a $filetype"
echo "AND the permissions \ is a $perm"
찾 은 파일 은 모두 실행 파일 내부 에 있 습 니 다. 외부 파일 은 접근 할 수 없습니다. 왜 그런 지 모 르 겠 습 니 다.
please input a filename: sh02.sh
the filename: sh02.sh is a regular file
AND the permissions is a writable
fuhui@ubuntu:~/script$ [ -z "$HOME" ]; echo $?
[]
fuhui@ubuntu:~/script$ echo $HOME
/home/fuhui
밑 에 문제 가 있어 요.
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p "please input(Y/N:)" yn
[ $yn == "Y" -o $yn == 'y' ] && echo 'ok,continue ' && exit 0
[ $yn == 'N' -o $yn == 'n' ] && echo 'oh,interrupt!' && exit 0
echo 'i do not know what your coice is ' && exit 0
please input(Y/N:)y
sh06.sh: 6: [: y: unexpected operator
sh06.sh: 7: [: y: unexpected operator
i do not know what your coice is
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p "please input(Y/N:)" yn
[ "$yn"=="Y" -o "$yn"=="y" ] && echo 'ok,continue ' && exit 0
[ "$yn"=='N' -o "$yn"=='n' ] && echo 'oh,interrupt!' && exit 0
echo 'i do not know what your coice is ' && exit 0
, ............
fuhui@ubuntu:~/script$ file /etc/init.d
/etc/init.d: directory
fuhui@ubuntu:~/script$ file /etc/init.d/syslog
/etc/init.d/syslog: ERROR: cannot open `/etc/init.d/syslog' (No such file or directory) fuhui@ubuntu:~/script$
scriptname opt1 opt2 opt3
$01 $1 $2 $3
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
echo "the script name : $0"
echo "the number of parameters is : $#"
test $# -lt 2 && echo 'parameters is too less' && exit 0
echo "the paramters are: $@"
echo "the first parameter is: $1"
echo "the second parameter is: $2"
test\# @ - lt 2 를 직접 사용 하여 비교 합 니 다. 왜 $(test\# @ - lt 2) 를 사용 하지 않 았 습 니까?
shift 는 변 수 를 이동 할 수 있 고 shift 뒤에 숫자 를 연결 할 수 있 습 니 다. 앞의 몇 개의 인 자 를 빼 는 뜻 입 니 다.
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
echo "the script name : $0"
echo "the number of parameters is : $#"
$(test $# -lt 2) && echo 'parameters is too less' && exit 0
echo "the paramters are: $@"
shift
echo "the first parameter is: $1"
shift
echo "the second parameter is: $2"
fuhui@ubuntu:~/script$ sh sh08.sh -s atart
the script name : sh08.sh
the number of parameters is : 2
the paramters are: -s atart
the first parameter is: atart
the second parameter is:
shift,
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p "please input(Y/N:)" yn
if [ "$yn" = "Y" ] ||[ "$yn" = "y" ]; then
echo 'ok,continue '
exit 0
fi
if [ "$yn" = 'N' ] || [ "$yn" = 'n' ]; then
echo 'oh,interrupt!'
exit 0
fi
echo 'i do not know what your coice is ' && exit 0
** , == ,
#!/bin/bash
# program:test example 01
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
read -p "please input(Y/N:)" yn
if [ "$yn" = "Y" ] ||[ "$yn" = "y" ]; then
echo 'ok,continue '
exit 0
elif [ "$yn" = 'N' ] || [ "$yn" = 'n' ]; then
echo 'oh,interrupt!'
exit 0
else
echo 'i do not know what your coice is ' && exit 0
fi
if-elif-else-if
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.