`
whusl
  • 浏览: 100440 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Shell 再学习

阅读更多

/dev/null #unix下的无底洞回收站

var=hello world #此时var的值是hello
var="hello world" #此时var的值是 hello world

/------------------------------------------
#!/bin/sh
new=sa
echo "hello world"
echo "$new welcome!" #结果是 "sa welcome!
"
echo "$newwelcome!" #结果是 "",结果并不是我们期待的那样
echo "${new}welcome" #结果是 "sawelcome!"

小结:"$"来获取变量时以空格为结束符,如果没有,则必须加上"{}"-----------------/


/----------------------------------------
#变量的赋值: 变量名=值
#等号两边不能有空格,如果需要空格,则必须用引号引起来
#shell变量区分大小写

name=sa #正确
name= sa #错误,系统会把'sa'当作一个命令来解释,而忽略"name="!
name="sa bc" #正确

readonly variable # 只读变量! ---------------------------------------/


/----------------------------------------
#环境变量:用于所有的用户进程
#条件:
# 可用于所有的子进程(登录进程为父进程)
# 可以在命令行中设置,但用户注销后将丢失
# 均为大写!且必须用export命令导出

NAME=grape
export NAME --------------------------------------------------------/


/-----------------------------------------
# 变量长度
var=abc #或者 var="abc"
echo ${#var} #输出"3",得到字符串的长度(包括空格)

var=(ac b c) #var是数组
echo ${#var} #第一个数组元素的长度,相当于 ${#var[0]}
echo ${#var[*]} #得到数组元素的个数 ----------------------------------/


/------------------------------------------
#变量扩展:字符串处理工具

字符串替换:
${var/sour/dest} #将var中第一个"sour"替换为"dest"
${var//sour/dest} #将var中的所有的"sour"替换为"dest"

字符串截取:
${var:pos} #截取变量var位置pos开始后的值(pos从0开始)
${var:pos:len} #截取变量var从pos开始长度为len的值
${var#pattern} #从前端开始,截去符合pattern的最短子串,返回剩余字符串
${var##pattern} #..........................最长子串,............
${var%pattern} #从后端开始,截去符合pattern的最短子串,............
${var%%pattern} #..........................最长子串,............

如:var="rabcda"
echo ${var:1} #输出:abcda
echo ${var:1:2} #输出:ab
echo ${var/a/x} #输出:rxbcda
echo ${var//a/x} #输出:rxbcdx,但并未改变var值!
echo ${var#?a} #输出:bcda
echo ${var##?a} #输出:bcda
echo ${var%*a} #输出:rabcd
echo ${var%%?a} #输出:rabc ----------------------/


/-----------------------------------------
#特定变量参数: 其值和命令的上下文有关!
$# #传递给脚本参数的个数
$$ #脚本运行的当前进程ID号
$? #最后一个命令退出的状态变量(正常为0)
$0 #运行的脚本的名字 如 ./a.sh,值为"./a.sh";若想得到"a.sh",则需要执行`basename $0`
$1 #脚本后面跟着的第一个参数
${10} #脚本后面跟着的第10个参数---------------------------------------/


/-----------------------------------------
# 数值运算

如 echo $((2#1001)) ,输出的是"1001"对应的十进制数 "9" ---------------/

如 let a=2*3 ,输出的是 "6";加入变量 let a=${a}*2 ,输出 "12"

如 let a=2**3 ,指数运算,输出 "8"

如 a=2;echo $(($a+1)) ,输出 "3"


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics