shell学习2

#! /bin/bash                             


your_name="www.baidu.com"                #变量 your_name 赋值
echo $your_name                          #输出变量 要在变量前加$,可以使用 $your_name 或 ${your_name}
for file in `ls /`;do          #for循环 `ls /` 目录下的文件,并赋值给file ;
   echo ${file}                          #在循环里输出 ${file}
done                                     #结束循环
#readonly your_name                      #把变量变成只读,只读后变量不能重新赋值
your_name="www.aliyun.com"               #重新赋值变量
echo ${your_name}                        #输出变量
unset your_name                          #删除变量
echo ${your_name}                        #删除变量后,将不会输出任何东西,unset 命令不能删除只读变量。


#变量类型
#运行shell时,会同时存在三种变量:


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


#Shell 字符串
#字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。


#单引号
str='this is string'                    #赋值单引号字符串
echo ${str}                             #输出字符串


#单引号字符串的限制:
#单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
#单引号字串中不能出现单引号(对单引号使用转义符后也不行)。


#双引号
your_name="hello world" 
str="Hello, I know your are \"$your_name\"! \n"  #赋值双引号字符串,转义了两个双引号
echo ${str}                                      #输出字符串


#双引号的优点:
#双引号里可以有变量
#双引号里可以出现转义字符


#拼接字符串
your_name="world"
str="hello, "$your_name" !"                  #字符串拼接变量再拼接字符串
str1="hello, ${your_name} !"                 #双引号里直接引用变量
echo $str $str1                              #输出  变量str 拼接 变量str1


#获取字符串长度
string="abcd"
echo ${#string}                              #字符串变量的大括号里加上#号,就可以获取字符串长度, ${#string}


#提取子字符串
#以下实例从字符串第 2 个字符开始截取 4 个字符:
string="hello world is a great world"
echo ${string:1:4}                           #输出 ello, 字符串第 2 个字符开始截取 4 个字符:


#查找子字符串
#查找字符 "i 或 s" 的位置:
string="hello world is a great world"
echo `expr index "$string" is`               # 输出 13, is的开始位置是13
#注意: 以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了哦。




################Linux 的字符串截取很有用。有八种方法。
var="http://www.baidu.com/123.htm"


#1. # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}    


#其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
#即删除 http://
#结果是 :www.baidu.com/123.htm


#2. ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/}


##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
#即删除 http://www.aaa.com/
#结果是 123.htm


#3. %号截取,删除右边字符,保留左边字符
echo ${var%/*}


#%/* 表示从右边开始,删除第一个 / 号及右边的字符
#结果是:http://www.baidu.com


#4. %% 号截取,删除右边字符,保留左边字符
echo ${var%%/*}


#%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
#结果是:http:


#5. 从左边第几个字符开始,及字符的个数
echo ${var:0:5}


#其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
#结果是:http:


#6. 从左边第几个字符开始,一直到结束。
echo ${var:7}


#其中的 7 表示左边第8个字符开始,一直到结束。
#结果是 :www.baidu.com/123.htm


#7. 从右边第几个字符开始,及字符的个数
echo ${var:0-7:3}


#其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
#结果是:123


#8. 从右边第几个字符开始,一直到结束。
echo ${var:0-7}


#表示从右边第七个字符开始,一直到结束。
#结果是:123.htm


#注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值