shell的特殊重要内置变量
来源:互联网 发布:软件服务外包 编辑:程序博客网 时间:2024/05/22 12:09
《1》位置变量
$0 获取当前执行的shell脚本的文件名,如果执行脚本带路径,那么就包括脚本路径。
$n 获取当前执行shell的命令行的第n个参数,当n=0时表示脚本的文件名,如果n>9,用{}将其括起来,参数以空格隔开。
$# 获取当前执行的shell脚本后面接的参数的总个数。
[root@localhost SHELL]# vim test.sh [root@localhost SHELL]# sh test.sh "how are you" hellohow are you hello 2 test.sh[root@localhost SHELL]# cat test.sh echo $1 $2 $# $0[root@localhost SHELL]# ///////////////////加引号与否[root@localhost SHELL]# vim test.sh [root@localhost SHELL]# sh test.sh how are youhow are[root@localhost SHELL]# sh test.sh "how are you" hellohow are you hello[root@localhost SHELL]# cat test.sh echo $1 $2
$*
$@$@ 与 $* 的区别:
$* 将命令行的所有参数视为一个单独的字符串,等同于”$1$2$3”,”$*”$@ 将命令行的每个参数视为单独的字符串,等同于”$1”, “$2”, “$3”.
dirname 与 basename
dirname 获取文件的路径名
basename 获取文件的名称
[root@localhost SHELL]# dirname /root/Desktop/SHELL/test.sh /root/Desktop/SHELL[root@localhost SHELL]# basename /root/Desktop/SHELL/test.sh test.sh[root@localhost SHELL]#
$0的使用验证:
《2》进程状态变量
$? 获取执行上一个指令的返回值(0表示成功,非0表示失败)
[root@localhost SHELL]# echo $?0[root@localhost SHELL]# sh test1.sh ni hao, ming tian[root@localhost SHELL]# echo $?0[root@localhost SHELL]# cat test1.sh echo 'ni hao, ming tian'[root@localhost SHELL]#
$? 的返回值的意义:
0 执行成功
2 权限不够
1~125 执行失败
126 找到该命令了,但是无法执行
127 未找到要运行的命令
大于128 命令被系统强制中断
提示: 在脚本中一般用 exit 数字,在执行脚本后,返回返回值给$?;;;; 在函数里用return 数字 返回返回值给$?
$! 获取执行上一个指令的PID
$$ 获取当前shell的进程号(PID)
[root@localhost SHELL]# sh test1.sh ni hao, ming tian[root@localhost SHELL]# echo $$5964[root@localhost SHELL]# cat test1.sh echo 'ni hao, ming tian'[root@localhost SHELL]# /////////////////[root@localhost SHELL]# vim test.sh [root@localhost SHELL]# sh test.sh &[2] 7733[root@localhost SHELL]# cat /tmp/a.pid 7733[root@localhost SHELL]# cat test.sh echo $$ >/tmp/a.pidsleep 200[root@localhost SHELL]#
$_ 获取在此之前执行的命令或脚本的最后一个参数
[root@localhost SHELL]# ls ./test1.sh test.sh UNIX.shell范例精解(第4版).pdf[root@localhost SHELL]# echo $_./[root@localhost SHELL]# //////////////////[root@localhost SHELL]# cat test.sh echo $1 $2 $# $0[root@localhost SHELL]# echo $_test.sh[root@localhost SHELL]# sh test.sh hello worldhello world 2 test.sh[root@localhost SHELL]# echo $_world[root@localhost SHELL]#
1 0
- shell的特殊重要内置变量
- Shell的特殊变量
- shell的特殊变量
- 常用的shell内置变量
- SHELL中特殊的变量
- 几个特殊的shell变量
- shell的一些特殊变量
- shell脚本的特殊变量
- perl的内置特殊变量一
- perl的内置特殊变量二
- perl的内置特殊变量三
- perl常用的内置特殊变量
- perl常用的内置特殊变量
- awk 几个特殊的内置变量
- perl常用的内置特殊变量
- Perl内置特殊变量
- Perl内置特殊变量
- Perl 内置特殊变量
- 二叉搜索树的后序遍历序列
- linux平台安装mysql---二进制包
- 图解opencv配置原理
- android中如何控制声音是从扬声器还是从 听筒里出啦
- matlab数组中求最大的几个数并返回其位置
- shell的特殊重要内置变量
- jquery-事件
- linux expect 安装
- eclipse导入android项目报错 MainActivity 和values文件出错
- 初入密码学世界
- android 关于发起不同网络请求与服务器session不一致问题
- 请问诸位大神,Android怎么实现图片转动
- linq查询的结果怎么在视图用
- 拓扑排序 详解 + 并查集 详解 + 最小生成树详解