shell里面 $开头的含义,以及扩展
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell里面 $开头的含义,以及扩展相关的知识,希望对你有一定的参考价值。
对于shell里面的set以及eval的用法:
set的作用设置位置参数(同命令行脚本的传参)
eval的作用是进行第二次描述
[email protected]:/home/xpg# set -- hello shanghai liangge [email protected]:/home/xpg# eval echo \$$# liangge [email protected]:/home/xpg#
shell里面的关于 "$"的作用:
$0:脚本名称
如果想获得脚本的路径以及脚本的名称可以使用dirname和basename
[email protected]:/home/xpg# dirname /home/xpg/1.sh /home/xpg [email protected]:/home/xpg# basename /home/xpg/1.sh 1.sh
$n:输出具体的参数
$#:总几个参数
$*:和下面的[email protected]在不带引号的情况下是一样的
[email protected]:带上引号的区别。可以用set设置位置参数看看,这两个一般不用
$?:对上一个命令执行的判断,如果正确,为0,否则为非零
企业中使用$?的用法:
判断脚本命令,脚本是否执行成功
*若在脚本中,使用exit n来返回数字给$?
*若在函数中,使用return来返回数字给$?
$$:获得脚本的进程号
生产的上的例子就是多次执行一个脚本的时候,第一次没有执行完,第二次就要先将这个脚本的pid删除,在使用$$判断这个脚本的pid
bash shell的内置命令:
echo:
-n:不换行输出内容
-e:解析转义字符(下面用到)
\n:换行
\r:回车
\t:tab健
\b:退格
[email protected]:/home/xpg# echo me;echo you me you [email protected]:/home/xpg# echo -n me;echo you meyou [email protected]:/home/xpg# printf "log\tlog\npog\tpog\n" log log pog pog [email protected]:/home/xpg# echo -e "log\tlog\npog\tpog" log log pog pog [email protected]:/home/xpg# echo -e log\tlog\npog\tpog logtlognpogtpog
exec:执行完命令会退出当前的shell的
[email protected]:/home/xpg# exec date Mon Jan 22 07:07:25 PST 2018 [email protected]:~ 关于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.cfg stu_102_1_finished.jpg [[email protected] ~]# rename "_finished" "" *.jpg [[email protected] ~]# ls anaconda-ks.cfg stu_102_1.jpg
以上是关于shell里面 $开头的含义,以及扩展的主要内容,如果未能解决你的问题,请参考以下文章