【Shell】编程基础--知识点总结

Shell脚本

本质:Shell命令的有序集合

特点:1、减轻管理员的工作量

           2、提高处理文本文件的速度

Shell脚本是解释性语言,不需要编译

Shell编程的基本过程

1、建立Shell文件:vi demo.sh

2、赋予Shell文件的执行权限:chmod 0777 文件名 执行文件时用./demo.sh

ps:用./a.out的方式执行的话需要修改权限

3、执行Shell文件:bash demo.sh、sh demo.sh 不需要修改权限

Shell用户自定义变量

1、字母、数字、下划线开头,不以数字开头

2、变量前不需要数据类型

3、变量后不需要分号

变量的使用方法

1、变量在使用的时候不需要定义

2、变量在赋值时不能有空格

3、变量在被赋值时默认都是字符串,不管有没有使用

变量的引用

#!/bin/bash
val=1
echo $val
#!/bin/bash
var=date
echo $date??

echo -n $var:-n表示输出的时候不换行

echo -e $var:-e表示转义

eg.输入一个'\n' 不加-e会直接打印出'\n';加上-e会执行换行

位置变量

$0:脚本文件名

$1,$2...$9:第一个到第九个命令参数

$#: 命令行参数的个数

$@:所有命令行参数“$1...$9"

$?:前一个命令的退出的状态

$*:所有命令行参数"$1...$9"

$$:正在执行的进程的ID号

#!/bin/bash
echo "Program name is $0"
echo "There is totally $# parameters passed to this program"
echo "The last is $?"
echo "There parameters are $*"

字符串的相关操作

1、字符串的拼接

#!/bin/bash
var=5
var1=6
echo $var$var1

2、字符串的拷贝

#!/bin/bash
var=hello
var1=$var

3、字符串的长度

${#string} -- string为变量名

#!/bin/bash
var="hello"
echo ${#var}

4、提取字符串

1)${str:start:len}

#!/bin/bash
str="abcdefg"
echo ${str:1:4} #从第一个字符后面一个开始,提取长度为4的字符串

2)${str:start}

#!/bin/bash
str="abcdefg"
echo ${str:1} #表示从第一个字符后面一个开始,提取到末尾

3)${str:0-start:len}

#!/bin/bash
str="abcdefg"
echo ${str:0-5:4} #表示从右侧开始向左边找到start的位置,向后提取len个字符的长度

4)${str:0-5}

#!/bin/bash
str="abcdefg"
echo ${str:0-5} #表示从右侧开始向左边找到start的位置,向后提取到末尾

5)${str#*cd}

#!/bin/bash
str="abcdefgcdhij"
echo ${str#*cd} #表示从左侧开始找到第一次出现cd的位置,将cd后面的字符串显示出来

6)${str##*cd}

#!/bin/bash
str="abcdefcdgcdhij"
echo ${str##*cd} #从左侧开始找到最后一次出现cd的位置,将该cd后面的字符串显示出来

7)${str%cd*}

#!/bin/bash
str="abcdefgcdhij"
echo ${str%cd*} #表示从右向左搜索第一次出现cd的位置,搜索到之后将字符串左侧内容输出

8)${str%%cd*}

#!/bin/bash
str="abcdefgcdhij"
echo ${str%%cd*} #表示从右向左搜索最后一次出现cd的位置,搜索到之后将字符串左侧的内容输出

数组

1、在Shell中只支持一维数组,不支持多维数组,数组中成员都是字符串

2、Shell中定义的数组不需要指定元素的个数

数组的赋值

arr=(1 2 3 4 aa hello)

数组的显示

整个数组:echo ${arr[*]}、echo ${arr[@]}

单个数组元素:echo ${arr[3]}

获取某个元素的长度:echo ${#arr[4]}

清除数组中的某个元素:unset arr[5]

#!/bin/bash
arr=(1 2 3 4 aa hello)
echo ${arr[*]} #显示整个数组
echo ${arr[@]} #显示整个数组
echo ${arr[3]} #显示arr[3]
echo ${#arr[4]} #显示arr[4]的长度
unset arr[5] #删除arr[5]

清除数组:unset arr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lindsey小姐月光加冕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值