인식 및 학습 bash

4658 단어 shellbash
Shell 의 변수 기능
변 수 는 로 컬 변수, 환경 변수, 위치 변수 로 나 뉜 다.
(1) 로 컬 변 수 는 현재 셸 에서 만 유효 합 니 다.
[root@daniel ~]# echo $$
25976
[root@daniel ~]# bash
[root@daniel ~]# echo $$
26020

export 환경 변 수 를 설정 합 니 다. 모든 셸 에 적 용 됩 니 다.
[root@daniel ~]# xx=100
[root@daniel ~]# export xx
[root@daniel ~]# echo $xx
100
[root@daniel ~]# bash
[root@daniel ~]# echo $xx
100

직접 할당 방식 의 변 수 를 통 해 시스템 을 다시 시작 하면 효력 을 잃 고 설정 파일 을 수정 하 는 방식 으로 영구적 으로 유효 합 니 다.
숨겨 진 파일 수정 을 통 해. bash프로필 파일
[root@daniel ~]# vim .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
xx=100
export PATH
export xx
[root@daniel ~]# echo $xx
100

위의 인 스 턴 스 는 현재 사용자 에 게 만 적 용 됩 니 다. 모든 사용자 에 게 적용 하려 면 / etc / bashrc 파일 내용 을 수정 해 야 합 니 다.
시스템 현재 환경 변 수 는 다음 과 같 습 니 다.
[root@daniel ~]# echo $HOME
/root
[root@daniel ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@daniel ~]# echo $PS1
[\u@\h \W]\$

$PS1 을 수정 하면 앞의 프롬프트 를 수정 할 수 있 습 니 다.
\ u 현재 로그 인 사용자 \ h 현재 사용자 홈 \W 현재 작업 디 렉 터 리 상대 경로 \ w 현재 작업 디 렉 터 리 절대 경로
[root@daniel ~]# export PS1="[\u@\h \w]$"

위치 변수
[root@daniel ~]# set 1 2 3 4 5 6 7 8 9 a b c d e f
[root@daniel ~]# echo $6
6
[root@daniel ~]# echo $10
10
[root@daniel ~]# echo ${10}
a

작은 따옴표
[root@daniel ~]# aa=100
[root@daniel ~]# echo '$aa'
$aa
[root@daniel ~]# echo "$aa"
100
[root@daniel ~]# echo `$aa`
-bash: 100: command not found

[root@daniel ~]# echo `aa`
-bash: aa: command not found
[root@daniel ~]# echo `uname -r`
2.6.32-431.el6.x86_64

$?지난번 명령 이 되 돌아 온 값 을 나타 내 고 0 은 실행 에 성 공 했 음 을 나타 내 며 다른 숫자 는 실 패 했 음 을 나타 낸다.
[root@daniel ~]# echo `uname -r`
2.6.32-431.el6.x86_64
[root@daniel ~]# echo $?
0
[root@daniel ~]# fds
-bash: fds: command not found
[root@daniel ~]# echo $?
127

수치, 문 자 를 비교, - eq - lt - lt 비교 숫자, = >
[root@daniel ~]# [ 3 -eq 2 ]; echo $?
1
[root@daniel ~]# [ 3 -lt 2 ]; echo $?    
1
[root@daniel ~]# [ 3 -gt 2 ]; echo $? 
0
[root@daniel ~]# [ abc > a ]; echo $?
0

선언 - r aa 읽 기 전용 변수
[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx-"abcdef"}
[root@daniel ~]# echo $r
abcdef
[root@daniel ~]# xx=100
[root@daniel ~]# r=${xx-"abcdef"}
[root@daniel ~]# echo $r
100
[root@daniel ~]# 


[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx="abcdef"}
[root@daniel ~]# echo $r
abcdef
[root@daniel ~]# xx=200
[root@daniel ~]# r=${xx="abcdef"}
[root@daniel ~]# echo $r
200

[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx:="adcb"}
[root@daniel ~]# echo $r
adcb
[root@daniel ~]# echo $xx
adcb
[root@daniel ~]# xx=
[root@daniel ~]# r=${xx:="adcb"}
[root@daniel ~]# echo $r
adcb
[root@daniel ~]# echo $xx
adcb
[root@daniel ~]# xx=300
[root@daniel ~]# r=${xx:="adcb"}
[root@daniel ~]# echo $r
300
[root@daniel ~]# echo $xx
300

[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx:-"bdca"}
[root@daniel ~]# echo $r
bdca
[root@daniel ~]# echo $xx

[root@daniel ~]# xx=
[root@daniel ~]# r=${xx:-"bdca"}
[root@daniel ~]# echo $r
bdca
[root@daniel ~]# xx=500
[root@daniel ~]# r=${xx:-"bdca"}
[root@daniel ~]# echo $r
500


[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx:?"adbce"}
-bash: xx: adbce
[root@daniel ~]# xx=
[root@daniel ~]# r=${xx:?"adbce"}
-bash: xx: adbce
[root@daniel ~]# xx=600
[root@daniel ~]# r=${xx:?"adbce"}
[root@daniel ~]# echo $r
600
[root@daniel ~]# echo $xx
600


[root@daniel ~]# xx=10
[root@daniel ~]# r=${xx:+"dfgl"}
[root@daniel ~]# echo $r
dfgl
[root@daniel ~]# unset xx
[root@daniel ~]# r=${xx:+"dfgl"}
[root@daniel ~]# echo $r

변수 내용 삭제 대체 및 교체
[root@daniel ~]# echo $path
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@daniel ~]# r=${path#*bin}
[root@daniel ~]# echo $r
:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@daniel ~]# r=${path##*bin}
[root@daniel ~]# echo $r

두 개의 \ # # 는 가장 먼 것 에서 시작 으로 삭제 되 기 때문에 모든 빈 은 삭 제 됩 니 다.
[root@daniel ~]# r=${path%*bin}
[root@daniel ~]# echo $r
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/
[root@daniel ~]# r=${path%%*bin}
[root@daniel ~]# echo $r

% 는 마지막 부터 끝까지 일치 합 니 다.

좋은 웹페이지 즐겨찾기