linux 셸 프로 그래 밍 10 $0 $1 $2 $\# $* $@ $! $$$?

1654 단어
$#           
$0         
$1      shell        
$2      shell        
$@              
$*                     ,       ,     9 
$$           ID 
$!         Process PID
$?             ,0      ,       

스 크 립 트:
#!/bin/bash
# args  test
echo "title: $0"
echo "total args: $#"
echo "first args: $1"
echo "second args: $2"
echo "all args: $@"
echo "all args: $*"
echo "currnet pid:$$"
echo "status: $?"

결과:
[root@localhost src]# sh java18 1 2 3title: java18total args: 3first args: 1second args: 2all args: 1 2 3all args: 1 2 3currnet pid:4005status: 0-----------------------------------------------------------------------------------------------------
구별: "@"과 "*"
  • 공통점: 모든 매개 변 수 를 참조 합 니 다
  • 차이 점: 따옴표 에 만 나타 납 니 다. 만약 에 스 크 립 트 가 실 행 될 때 세 개의 매개 변수 (1, 2, 3) 를 기록 하면 '*' 는 '123' (하나의 매개 변 수 를 전달 한 것 과 같 음) 과 같 고 '@' 은 '1', '2', '3' (세 개의 매개 변 수 를 전달 한 것)
  • 을 전달 한 것 과 같 습 니 다.
    3"
    스 크 립 트:
    #!/bin/bash
    # total args 
    a=$#
    for((i=0;i<$a;i++))
    do
    echo "$i"
    done
    
    echo "---- $ @----"
    for var in $@
    do
    echo "$var"
    done
    
    echo "----$ *----"
    for va in $*
    do
    echo "$va"
    done
    
    echo "---- " $ @ "----"
    for var1 in "$@"
    do
    echo "$var1"
    done
    
    echo "---"  "----"
    for va1 in "$*"
    do
    echo "$va1"
    done

    실행 결과:
    [root@localhost src]# sh java19 1 2 3012---- $ @---- 123----$ *----123----  $ @ ----123--- ----1 2 3

    좋은 웹페이지 즐겨찾기