退出状态bash中的内建命令虽然不创建新的进程,但也会有Exit Status,通常也用0表示成功非零表示失败,可以用特殊变量$?读出 命令代换:`或$()
user@ae01:~$ echo `date `
Sat Oct 25 19 :17 :58 CST 2014
user@ae01: ~$
user@ae01: ~$ echo $(date )
Sat Oct 25 19 :18 :16 CST 2014
user@ae01: ~$
算术代换:$(())
user@ae01:~$ echo $((1 +1 ))
2
user@ae01:~$ i=1
user@ae01: ~$ echo $(($i+1 ))
2
user@ae01: ~$ echo $((i+1 ))
2
单引号Shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:
user@ae01:~$ echo ' hello word
> '
hello word
user@ae01: ~$
user@ae01:~$ echo ' hello \
> word'
hello \
word
user@ae01: ~$
双引号 双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:$加变量名可以取变量的值 ``仍表示命令替换 \$ 表示$的字面值 \` 表示`的字面值 \" 表示"的字面值 \\ 表示\的字面值
user@ae01:~$ echo $HOME
/home/user
user@ae01: ~$ echo " `date` "
Sat Oct 25 19 :31 :46 CST 2014
user@ae01: ~$ echo " I'd say: \"Go for it\" "
I ' d say: "Go for it"
user@ae01:~$ echo " \"
> "
"
user@ae01: ~$ echo " \\ "
\
user@ae01: ~$
bash 参数$0 代表脚本在执行时的自身文件名;像上面执行时用的是相对路径,即显示执行时的$0为"./Parameter";若执行时用绝对路径“/home/kashu/Parameter”,则$0就会显示为“/home/kashu/Parameter” $# 代表所有参数的总数量 $@ 代表 "$1","$2", "$3", "$4" 等等,即代表每个独立的变量参数,$1 代表第一个变量参数, $2 代表第二个变量参数
echo " $# parameters " ;
echo -e \\nUsing ' $* ' ;
for p in $*;
do
echo " [$p] " ;
done ;
echo -e \\nUsing ' "$*" ' ;
for p in " $* " ;
do
echo " [$p] " ;
done ;
echo -e \\nUsing ' $@ ' ;
for p in $@;
do
echo " [$p] " ;
done ;
echo -e \\nUsing ' "$@" ' ;
for p in " $@ " ;
do
echo " [$p] " ;
done
user@ae01:~$ ./test.sh 1 " 2 3 "
2 parameters
Using $ *
[ 1 ]
[ 2 ]
[ 3 ]
Using " $* "
[ 1 2 3 ]
Using $@
[ 1 ]
[ 2 ]
[ 3 ]
Using " $@ "
[ 1 ]
[ 2 3 ]
转载于:https://www.cnblogs.com/tannerBG/p/4054366.html