shell里面 $开头的含义,以及扩展
对于shell里面的set以及eval的用法: set的作用设置位置参数(同命令行脚本的传参) eval的作用是进行第二次描述 root@ubuntu:/home/xpg#set--helloshanghailiangge root@ubuntu:/home/xpg#evalecho$$# liangge root@ubuntu:/home/xpg# shell里面的关于 "$"的作用: $0:脚本名称 如果想获得脚本的路径以及脚本的名称可以使用dirname和basename root@ubuntu:/home/xpg#dirname/home/xpg/1.sh /home/xpg root@ubuntu:/home/xpg#basename/home/xpg/1.sh 1.sh $n:输出具体的参数 $#:总几个参数 $*:和下面的$@在不带引号的情况下是一样的 $@:带上引号的区别。可以用set设置位置参数看看,这两个一般不用 $?:对上一个命令执行的判断,如果正确,为0,否则为非零 企业中使用$?的用法: 判断脚本命令,脚本是否执行成功 *若在脚本中,使用exit n来返回数字给$? *若在函数中,使用return来返回数字给$? $$:获得脚本的进程号 生产的上的例子就是多次执行一个脚本的时候,第一次没有执行完,第二次就要先将这个脚本的pid删除,在使用$$判断这个脚本的pid bash shell的内置命令: echo: -n:不换行输出内容 -e:解析转义字符(下面用到) n:换行 r:回车 t:tab健 b:退格 root@ubuntu:/home/xpg#echome;echoyou me you root@ubuntu:/home/xpg#echo-nme;echoyou meyou root@ubuntu:/home/xpg#printf"logtlognpogtpogn" loglog pogpog root@ubuntu:/home/xpg#echo-e"logtlognpogtpog" loglog pogpog root@ubuntu:/home/xpg#echo-elogtlognpogtpog logtlognpogtpog exec:执行完命令会退出当前的shell的 root@ubuntu:/home/xpg#execdate MonJan2207:07:25PST2018 xpg@ubuntu:~ 关于shell变量子串知识以及实践 ${变量名}:值 ${#变量名}:长度 ${变量名:num}:从num开始到最后,num是一个数字 ${变量名:num:num1}:从num到num1之间的字符 ${变量名#word}:从变量开头删除最短匹配的word子串 ${变量名##word}:从变量开头删除最长匹配的word子串 ${变量名%word}:从右边开始删除的 %%:从变量右边删除匹配最长匹配的word,word可以是(a*c代表是的a到c,[0-9]) ${parameter/pattern/string}:使用第一个代替第一个匹配的pattern ${parameter//pattern/string}:使用string代替所有的pattern 修改文件名: anaconda-ks.cfgstu_102_1_finished.jpg [root@localhost~]#rename"_finished"""*.jpg [root@localhost~]#ls anaconda-ks.cfgstu_102_1.jpg ${parameter:-word}:如果变量值为空,则返回的是word字符 root@ubuntu:/home/xpg#echo$test root@ubuntu:/home/xpg#echo${test:-word} word root@ubuntu:/home/xpg#echo${test:=word} word root@ubuntu:/home/xpg#echo$test word root@ubuntu:/home/xpg# ${parameter:=word}:和上面的一样,但是会将word的值赋给变量 ${parameter:?word}:如果parameter变量值为空或者未赋值,那么word字符串被作为标准错误输出 ${parameter:+word}:如果parameter的值为空,则什么也不做,否则word的值将代替变量 root@ubuntu:/home/xpg#echo$test root@ubuntu:/home/xpg#echo${test:?nodefined} bash:test:nodefined root@ubuntu:/home/xpg#echo${test:+gg} root@ubuntu:/home/xpg#test=rr root@ubuntu:/home/xpg#echo${test:+gg} gg root@ubuntu:/home/xpg# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 解决bootstrap中使用modal加载kindeditor时弹出层文本框不能
- twitter-bootstrap-3 – Bootstrap 3导航栏的结构是什么?
- Scala Swing:在Component上缺少JComponent方法
- angular – 为什么我无法从AutoMapper(TS)导入并生成Requir
- typescript – Angular2没有NameService的提供程序
- Vim命令重置为最旧的更改?
- 如何使用bash脚本遍历所有git分支
- registry – 通过主机ubuntu主机中的浏览器访问在vagrant
- scala – Spark:即使输出数据非常小,合并也很慢
- Scala可以注意到路径依赖类型之间的身份吗?