Shell笔记(变量/字符串)

Shell:

说明:shell是一种命令语言,也是一种程序设计语言。通常shell都是用于脚本程序开发。
shell与linux的关系:shell的中文意思为“壳”。shell是包裹在linux外部的一层壳,壳通过shell程序执行一序列的linux程序。shell能完成同样linux能完成的任务,区别在于shell能够程序化的执行一系列linux指令,而不用人为的一直输入指令。

Shell脚本运行方法:
作为解释器参数。

shell常用的两个解释器:
1.sh
说明:sh是UNIX上的标准的shell
语句: /bin/sh shFile.sh,在当前目录下执行shFile这个shell文件。
2.bash
说明:bash是Linux上的默认shell
语句: /bin/bash bashFile.sh,在当前目录下执行bashFile这个shell文件。

作为可执行程序:
步骤:
1.将目标文件(shLimitRelive.sh)赋予执行权限。
chmod +x ./shLimitRelive.sh
chomd常用命令链接

2.执行脚本
./shLimitRelive.sh

Shell中的变量

1.变量类型

局部变量
说明:局部变量在脚本或者命令中定义,仅在shell实例中有效,其他shell启动的程序无法直接访问局部变量。

局部变量可由export升级为全局变量
语句:export 变量名

环境变量
说明:所有程序均可访问的变量,用于保证程序的常规运行,可自定义。
部分环境变量:

$SET
$HOME	
$PWD
$SHELL
$USER

shell变量
说明:由环境变量和局部变量组成,用以保证shell的正常运行。

2.自定义变量

定义变量:变量=值
撤销变量:unset 变量
声明静态变量:readonly 变量,此变量为只读变量,无法使用unset

命名规则:
1.由数字、字母和下划线组成,不能以数字开头,建议使用大驼峰命名法。
2.等号两侧不能有空格
3.变量值如果有空格,需要适用于双引号或单引号括起来
4.bash中默认所有类型都是字符串类型,无法直接进行数学运算。

如:

#定义变量a
a=1
#输出a的值
echo $a
#重复给变量a赋值
a=2
#撤销变量a
unset a
echo $a
#声明静态变量b=2
readonly b=2
echo $b
#bash中无法直接进行数学运算
c=1+2
#执行的结果为打印出一个“1+2”的字符串
echo $c  
#bash中变量均默认为字符串,字符串存在空格时需使用引号
d=爱 老 虎 油
#运行时会报错,程序会认为第二个字符串为未赋值变量。
d="爱 老 虎 油"
echo $c
#shell变量存在作用域的问题,与其它语言一样,使用export可将变量提升为全局变量
export b

3.shell字符串
说明:shell中默认只有字符串类型。

字符串的拼接

操作示例如下(单引号与双引号操作一致,以双引号为例):

#先定义变量str_name
str_name="matuotuo"
#组成一个结果为matuotuo everytime的字符串
str1=""$str_name" everytime"
#组成一个结果为 today matuotuo everytime的字符串
str2="today"$str1""
#字符串的拼接中各出现各种字符或符号都会默认进行拼接操作
#str3打印的结果为today matuotuo everytime eat xiang !
str3=""$str2" eat xiang !"

总结:
以str=“hello world"为例,默认双引号中内容的均为字符,包括空格,字符串进行拼接时,只需要在需要拼接的位置插入”$strName"即可,其中strName为插入的变量。

获取字符串长度

str='abcd'
echo ${#string}	#4

字符串切片

说明:shell中字符串的索引从0开始 ,n-1结束。(n为字符串长度)
语句:{str❌y},其中str是被切片的字符串,x是起始位置,y是结束位置。

str="哈喽我得"
echo ${str:1:2}		#结果为喽我

4.特殊变量

$n

说明:n为数字,$0代表脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要使用大括号,如:${10}。
#创建一个par.sh文件,在文件中写入内容:echo "$0 $1 $2"
touch par.sh
/bin/bash par.sh cls xz
#输出结果如下
par.sh cls xz

$#
作用:获取所有输入参数个数

$*
作用:将所有参数视作一个整体

$@
作用:将所有参数区分对待

$?
作用:根据最后一次执行的命令的返回值判断是否产生了错误。0为正确,其他则为错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值