shell脚本命令基础

kissdead0xzy 2019-05-31 10:17:05
Linux中变量,basename,$#,$@,$0,$1,$2,$*,$$,$? [-eq] [-ne] [-gt] [-lt] [ge] [le]的含义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误  basename 是去除目录后剩下的名字 example:shell>temp=/home/temp/1.test          shell>base=`basename $temp`          shell>echo $base 结果为:1.test dirname 是取目录 example:shell>temp=/home/temp/1.test          shell>dir=`dirname $temp`          shell>echo $dir 结果为:/home/temp 另一种实现的方法: ${var##*/} 就是把变量var最后一个/以及左边的内容去掉 ${var%/*} 就是把变量var最后一个/以及右边的内容去掉 区别:@* 相同点:都是引用所有参数 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在12 3)则"*" 等价于 “12 3"(传递了一个参数);而“@" 等价于 "1""2" "$3"(传递了三个参数) -eq           //等于 -ne           //不等于 -gt            //大于 (greater ) -lt            //小于  (less) -ge            //大于等于 -le            //小于等于 命令的逻辑关系: 在linux 中 命令执行状态:0 为真,其他为假 逻辑与: &&        -a 第一个条件为假时,第二条件不用再判断,最终结果已经有; 第一个条件为真时,第二条件必须得判断; 逻辑或: || 逻辑非: ! 例子一: 1 ##dels.sh 2 echo "number:$#" 3 echo "scname:$0" 4 echo "first :$1" 5 echo "second:$2" 6 echo "argume:$@" 7 echo "show parm list:$*" 8 echo "show process id:$$" 9 echo "show precomm stat: $?" 执行结果为:
...全文
21 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

18,772

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧