shell入门

shell脚本

新建一个.sh文件 文件名可以随便写 
vi test.sh
echo "hello world"
在该文件夹下执行./test.sh命令 会提示没有权限执行
chmod +x ./test.sh
一定要带上./ 不然系统就会去/目录下找test.sh 文件
shell变量
变量可以由数字 字母 下划线组成 但不能用数字开头
给变量赋值
name="hello tom"
产看name变量的值
echo ${name}
除了可以显示的给变量赋,还可以隐式的给变量赋值
for file in `ls /etc`; do
echo ${file}
done
可以查看etc目录下所有的文件
for val in tom jerry wudy song;do
echo "Hello,${val}"
done
得到结果
Hello,tom
Hello,jerry
Hello,wudy
Hello,song
变量可以被重新定义
username=lisi
username=susan
echo ${username}
显示susan

只读变量
readStr="onlyRead char"
readonly readStr
readStr="writer readStr"
将会报错:This variable is read only.
删除变量
delStr="string"
echo ${delStr}
unset delStr
echo ${delStr}
delStr 不会有任何内容输出
运行shell时,会同时存在三种变量:

 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
 shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

shell字符串
单引号里的任何内容都是原样输出的 变量在单引号中是无效的也是原因输出
单引号中不能有单引号 即便对单引号转义也不行

双引号中可以由变量
双引号可以有转义字符
string="hello,\"tom\"!"
	输出hello "tom"!
取字符串的长度
string="abcdefg"
	echo ${#string}
	输出7
截取字符串
string="abcdefgh"
echo ${string:1:5}
从第几个开始:截取几个
输出bcdef


查找子字符串
string="good luck dog"
echo `expr index "$string" dl`
查找d 或 l的位置
输出4


shell数组
支持一维数组 不支持二维数组 没有限制数组的大小 数组的下标从0开始
array1=(val1 val2 val3 val4 val5)
h还可以单独定义
array[0]=val1
array[1]=val2
array[2]=val3
读取数组
${array[0]}
${array[1]}
输出val1 val2
value=${array[2]}
获取所有的数组元素
echo ${array[@]}
获取数组的长度
len=${#array[@]}或者 len=${#array[*]}
获取数组中单个元素的长度
len=${#array[n]}
shell注释
#string="string"
#str="hello"


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值