인식 및 학습 bash
변 수 는 로 컬 변수, 환경 변수, 위치 변수 로 나 뉜 다.
(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
% 는 마지막 부터 끝까지 일치 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.