2016-03-15 58 views
6

我對Bash腳本很陌生,有人能向我解釋$#和$嗎?在下面的代碼中工作?

#!/bin/bash 

ARGS=3   # Script requires 3 arguments. 
E_BADARGS=85 # Wrong number of arguments passed to script. 

if [ $# -ne "$ARGS" ] 
then 
    echo "Usage: `basename $0` old-pattern new-pattern filename" 
    exit $E_BADARGS 
fi 

old_pattern=$1 
new_pattern=$2 

if [ -f "$3" ] 
then 
    file_name=$3 
else 
    echo "File \"$3\" does not exist." 
    exit $E_BADARGS 
fi 

exit $? 

回答

11

Learn Bash in Y minutes

# Builtin variables: 
# There are some useful builtin variables, like 
echo "Last program's return value: $?" 
echo "Script's PID: $$" 
echo "Number of arguments passed to script: $#" 
echo "All arguments passed to script: [email protected]" 
echo "Script's arguments separated into different variables: $1 $2..." 
1

$#顯示的腳本參數 $?的數字顯示最後一個腳本的返回值

有關參數:echo "ARG[$#]"之前if,然後執行類似

腳本
script.sh 1 

的輸出中會

ARG[1] 
Usage: g old-pattern new-pattern filename 

$?的輸出中也可以用於在命令行上:

#shell>ls 
file1.txt  g    inpu    nodes_list 
#shell>echo $? 
0 

#shell>ls FileNameNotFound 
ls: FileNameNotFound: No such file or directory 
#shell> echo $? 
1