셸 스 크 립 트 변수 특수 문자 의 의미
3527 단어 shell
매개 변수 설명
1: $\# 스 크 립 트 가 들 어 오 는 매개 변 수 를 표시 합 니 다.
2:$* 실행 스 크 립 트 전송 매개 변수 목록 표시
3: $$프로 세 스 id 표시
4: $@ 은 스 크 립 트 를 실행 하여 모든 인 자 를 전달 하 는 것 을 표시 합 니 다.
5: $0 은 실행 스 크 립 트 이름 을 표시 합 니 다.
6: $1 은 첫 번 째 매개 변 수 를 표시 합 니 다.
7: $2 는 두 번 째 매개 변 수 를 표시 합 니 다.
8:$? 스 크 립 트 실행 상태 0 정상, 기타 오류 표시
실험 및 결과
#!/bin/shecho "parm number is : $#"echo "parm list is : $*"echo "all parm is : $@"
echo "process is : $$"
echo "file name is : $0"echo "the first parm is : $1"echo "stat is : $?"
집행 및 결과
실행: sh shellTest. sh "the first parm""the second parm"
parm number is : 2parm list is : the first parm the second parmall parm is : the first parm the second parmprocess is : 28669file name is : shellTest.shthe first parm is : the first parm stat is : 0
2. $@ 과 $* 의 차이
셸 스 크 립 트 파일 작성
셸 에서 $@ 과 $* 는 명령 행 의 모든 매개 변수 ($0 포함 되 지 않 음) 를 표시 하지만 $* 는 명령 행 의 모든 매개 변 수 를 하나의 전체 로 보고 $@ 은 각 매개 변 수 를 구분 합 니 다.
eg:
for i in "$@"
do
echo $i #$\# 회 순환 을 경험 합 니 다
done
for i in "$*"
do
echo $i #한 번 만 순환 합 니 다. $* 따옴표 가 없 으 면 $\# 번 순환 합 니 다.
done
2. 명령 줄 에 입력 sh tt6.sh 1 2 3 4 5 6 7
이때 의 운행 결 과 는 12345671, 2, 3, 4, 5, 6, 7.
3. Shell 의 ${},\# 와%% 사용 범례
만약 에 우리 가 변 수 를 정의 했다 면:
file=/dir1/dir2/dir3/my.file.txt
${} 로 각각 다른 값 을 바 꿀 수 있 습 니 다:
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
기억의 방법 은:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的 5 个字节:/dir1
${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2
변수 값 의 문자열 을 바 꿀 수도 있 습 니 다:
${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt
${} 을 이용 하여 서로 다른 변수 상태 에 값 을 부여 할 수 있 습 니 다 (설정 되 지 않 음, 빈 값, 비 빈 값).
${file - my. file. txt}: $file 이 설정 되 어 있 지 않 으 면 my. file. txt 를 전송 값 으로 사용 합 니 다.(빈 값 및 빈 값 이 아 닐 때 처리 하지 않 음) ${file: - my. file. txt}: $file 이 설정 되 지 않 거나 빈 값 이 라면 my. file. txt 를 사용 하여 전송 값 을 사용 합 니 다.(비어 있 지 않 을 때 처리 하지 않 음) ${file + my. file. txt}: $file 이 비어 있 거나 비어 있 지 않 으 면 my. file. txt 를 전송 값 으로 사용 합 니 다.(설정 되 지 않 았 을 때 처리 하지 않 음) ${file: + my. file. txt}: $file 이 비어 있 지 않 으 면 my. file. txt 를 전송 값 으로 사용 합 니 다.(빈 값 을 설정 하지 않 았 을 때 처리 하지 않 음) ${file = my. file. txt}: $file 이 설정 되 어 있 지 않 으 면 my. file. txt 를 전송 값 으로 하고 $file 을 my. file. txt 로 할당 합 니 다.(빈 값 및 비어 있 지 않 을 때 처리 하지 않 음) ${file: = my. file. txt}: $file 이 설정 되 지 않 았 거나 비어 있 지 않 으 면 my. file. txt 를 전송 값 으로 하고 $file 을 my. file. txt 로 할당 합 니 다.(빈 값 이 아 닐 때 처리 하지 않 음) ${file? my. file. txt}: $file 이 설정 되 어 있 지 않 으 면 my. file. txt 를 stdERR 로 출력 합 니 다.(빈 값 및 비 빈 값 시 처리 하지 않 음)
${file:? my. file. txt}: $file 이 설정 되 지 않 았 거나 비어 있 으 면 my. file. txt 를 stdERR 로 출력 합 니 다.(빈 값 이 아 닐 때 처리 하지 않 음) ${\# var} 변수 값 의 길 이 를 계산 할 수 있 습 니 다:
${\# file} 27 을 얻 을 수 있 습 니 다./dir 1/dir 2/dir 3/my. file. txt 는 27 바이트 이기 때 문 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.