shell脚本基础与变量

本文档介绍了Shell脚本的基础知识,包括如何运行脚本、定义和使用变量、设置只读变量以及删除变量。重点讲解了Shell字符串的使用,如单引号和双引号的区别,字符串的拼接、长度获取、提取和查找操作。此外,还涵盖了数组的运用及获取数组长度的方法,以及Shell脚本中的注释方式。
摘要由CSDN通过智能技术生成

本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问

基础知识

#!/bin/bash (这个是shell脚本的解释说明)
echo "Hello World !"

运行shell脚本

我们先给脚本执行权限,然后再执行脚本

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

变量

#shell变量
your_name="runoob.com"
#有效的shell变量
RUNOOB
LD_LIBRARY_PATH
_var
var2
#无效的shell变量
?var=123
user*name=runoob
#使用shell变量
your_name="qinjx"
echo $your_name
echo ${your_name}

使用一个定义过的变量,只要在变量名前面加美元符号即可。变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

只读变量

#!/bin/bash
myUrl="https://www.google.com"
readonly myUrl
myUrl="https://www.runoob.com"

删除变量

unset variable_name

变量被删除后不能再次使用。unset 命令不能删除只读变量。

shell字符串

分为单引号和双引号

单引号

str=\'this is a string\'

单引号字符串的限制:
1.单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
2.单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

双引号

your_name=\'runoob\'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str

输出:Hello, I know you are "runoob"!
双引号的优点:
1.双引号里可以有变量
2.双引号里可以出现转义字符

拼接字符串

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2=\'hello, \'$your_name\' !\'
greeting_3=\'hello, ${your_name} !\'
echo $greeting_2  $greeting_3

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取字符串

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

查找字符串

string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4

注意: 以上脚本中 ` 是反引号,而不是单引号 ',不要看错了哦。

shell数组

#bash支持一维数组(不支持多维数组),并且没有限定数组的大小
#定义如下
数组名=(值1 值2 ... 值n)
#例如
array_name=(value0 value1 value2 value3)
#单独定义数组的各个分量
array_name[0]=value0
#读取数组
${数组名[下标]}
#使用 @ 符号可以获取数组中的所有元素,例如:
echo ${array_name[@]}

获取数组长度

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

shell注释

以 # 开头的行就是注释,会被解释器忽略。
多行注释还可以使用以下格式:

:<<EOF
注释内容...
注释内容...
注释内容...
EOF

:<<\'
注释内容...
注释内容...
注释内容...
\'

:<<!
注释内容...
注释内容...
注释内容...
!
微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值