Saturday, July 11, 2015


Bảng dưới đây liệt kê các biến đặc biệt của shell, hay còn gọi là parameter variables, là các đối số được dùng trong shell script.


Variable Description
$0 The filename of the current script.
$n These variables correspond to the arguments with which a script was invoked. Here n is a positive decimal number corresponding to the position of an argument (the first argument is $1, the second argument is $2, and so on).
$# The number of arguments supplied to a script.
$* All the arguments are double quoted ( $1 $2 ...). If a script receives two arguments, $* is equivalent to $1 $2.
$@ All the arguments are individually double quoted ( "$1" "$2" ...). If a script receives two arguments, $@ is equivalent to $1 $2.
$? The exit status of the last command executed.
$$ The process number of the current shell. For shell scripts, this is the process ID under which they are executing.
$! The process number of the last background command.


1. Command-Line Arguments
test.sh
 #!/bin/sh  
   
 echo "File Name: $0"  
 echo "First Parameter : $1"  
 echo "First Parameter : $2"  
 echo "Quoted Values: $@"  
 echo "Quoted Values: $*"  
 echo "Total Number of Parameters : $#"  

 $./test.sh Zara Ali  
 File Name : ./test.sh  
 First Parameter : Zara  
 Second Parameter : Ali  
 Quoted Values: Zara Ali  
 Quoted Values: Zara Ali  
 Total Number of Parameters : 2  

2. Special Parameters $* and $@
$* và $@ đều liệt kê ra danh sách biến nhưng theo những cách khác nhau và phụ thuộc vào biến môi trường IFS.

 $ IFS=‘’ 
 $ set foo bar bam  
 $ echo "$@"  
 foo bar bam  
 $ echo "$*"  
 foobarbam  
 $ unset IFS  
 $ echo "$*"  
 foo bar bam  

3. Exit Status
$? cho biết giá trị trả về của lệnh cuối cùng.

 $./test.sh Zara Ali  
 File Name : ./test.sh  
 First Parameter : Zara  
 Second Parameter : Ali  
 Quoted Values: Zara Ali  
 Quoted Values: Zara Ali  
 Total Number of Parameters : 2  
 $echo $?  
 0  
 $  

Vậy lệnh cuối cùng
 echo "Total Number of Parameters : $#"  
trả về exit code là 0.


Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -