bixiaopeng@bixiaopengtekiMacBook-Pro Shell备忘录$ bash Shell变量使用总结.sh param1 param2 param3
# -------------------------------------------------------
# ============= 特殊字符 ==========
# -------------------------------------------------------
# ========= 用转义符\,屏蔽下一个字符的特殊意义
# ========= 特殊字符及其意义 =========
# & :传递到脚本的参数数量
# * :0个或多个在*字符前的那个普通字符
# + :匹配1个或多个在其之前的普通字符
# ^ :匹配行首,或后面字符的非
# $ :命令退出状态,0表示没错误,非0...
# ` :反引号,shell引用符号,解析命令
# " :双引用,shell引用符号
# | :管道符号或表示“或”意义
# ? :管道符号或表示“或”意义
# \ :转义符本身
# ========= 转义符后跟字母表示的特殊意义:=========
# \n :换行
# \r :回车
# \t :Tab键
# \v或\f :换行但光标停留在原来位置
# \b :Backspace键
# \a :警报声
# \0xx :ASCII码0xx对应字符
# -------------------------------------------------------
# ============= 特殊变量引用 ==========
# -------------------------------------------------------
# ====== 引用格式: Shell变量使用总结.sh : 当前脚本的文件名
$0 # >- Shell变量使用总结.sh
# ====== 引用格式: $num : num为从1开始的数字,param1是第一个参数,param2是第二个参数,是第十个参数
$1 # >- param1
$2 # >- param2
$3 # >- param3
# ====== 引用格式: $# : 传入脚本的参数的个数
$# # >- 3
# ====== 引用格式: $* : 所有的位置参数(作为单个字符串)
$* # >- param1 param2 param3
# ====== 引用格式: $@:所有的位置参数(每个都作为独立的字符串)
$@ # >-
#param1 param2 param3
# ====== 引用格式: $?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则0的值为0,否则为其他非零值,常用做if语句条件$? # >- 0
# ====== 引用格式: $$:当前shell进程的pid
$$ # >- 78109
# ====== 引用格式: $!:后台运行的最后一个进程的pid
$! # >-
# ====== 引用格式: $-:显示shell使用的当前选项
$- # >- hB
# ====== 引用格式: $_:之前命令的最后一个参数
$_ # >- $_:之前命令的最后一个参数
#! bin/bash
# -------------------------------------------------------------------------------
# 文件名: Shell特殊字符及特殊变量总结.sh
# 版 本: 1.0
# 创建日期: 2014/02/16
# 描 述: 特殊字符及特殊变量总结
# 作 者: 毕小朋
# 邮 箱: wirelessqa.me@gmail.com
# 博 客: http://blog.csdn.net/wirelessqa
# -------------------------------------------------------------------------------
function show_var_escape()
{
cat <<EOF
# -------------------------------------------------------
# ============= 特殊字符 ==========
# -------------------------------------------------------
# ========= 用转义符\,屏蔽下一个字符的特殊意义
# ========= 特殊字符及其意义 =========
# & :传递到脚本的参数数量
# * :0个或多个在*字符前的那个普通字符
# + :匹配1个或多个在其之前的普通字符
# ^ :匹配行首,或后面字符的非
# \$ :命令退出状态,0表示没错误,非0...
# \` :反引号,shell引用符号,解析命令
# " :双引用,shell引用符号
# | :管道符号或表示“或”意义
# ? :管道符号或表示“或”意义
# \\ :转义符本身
# ========= 转义符后跟字母表示的特殊意义:=========
# \n :换行
# \r :回车
# \t :Tab键
# \v或\f :换行但光标停留在原来位置
# \b :Backspace键
# \a :警报声
# \0xx :ASCII码0xx对应字符
EOF
}
str_quote_explain="# ====== 引用格式:"
str_result="# >-"
function show_example_title()
{
echo ""
echo ${str_quote_explain} $1
}
function show_example()
{
echo "$str_echo$1 $str_result $2"
}
show_var_escape
echo ""
echo "# -------------------------------------------------------"
echo "# ============= 特殊变量引用 =========="
echo "# -------------------------------------------------------"
show_example_title "$0 : 当前脚本的文件名"
show_example "\$0" "$0"
show_example_title "\$num : num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数"
show_example "\$1" "$1"
show_example "\$2" "$2"
show_example "\$3" "$3"
show_example_title "\$# : 传入脚本的参数的个数"
show_example "\$#" "$#"
show_example_title "\$* : 所有的位置参数(作为单个字符串) "
show_example "\$*" "$*"
show_example_title "\$@:所有的位置参数(每个都作为独立的字符串)"
show_example "\$@"
echo "#$@"
show_example_title "\$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件"
show_example "\$?" "$?"
show_example_title "\$\$:当前shell进程的pid"
show_example "\$\$" "$$"
show_example_title "\$!:后台运行的最后一个进程的pid"
show_example "\$!" "$!"
show_example_title "\$-:显示shell使用的当前选项"
show_example "\$-" "$-"
show_example_title "\$_:之前命令的最后一个参数"
show_example "\$_" "$_"
作者: 毕小朋 | 老 毕 邮箱: wirelessqa.me@gmail.com
微博: @WirelessQA 博客: http://blog.csdn.net/wirelessqa
原文:http://blog.csdn.net/wirelessqa/article/details/19285207