Linux7.6—Shell编程 学习笔记 第二章:Shell基础入门

Linux7.6—Shell编程

第二章:Shell基础入门


一.Shell变量

  • 定义变量名
    • 使用变量无需事先声明
    • 只能使用英文字母,数字和下划线,首个字符不能为数字
    • 不能使用空格,标点符号,$符,bash里的关键字
    • 需要给变量赋值时,可以这么写:
      • 变量名=值
    • 要取用一个变量的值,只需在变量名前面加一个$ ( 给变量赋值的时候,不能在"="两边留空格 )
  • 变量的类型
    • 局部变量
      • 局部变量在脚本或命令中定义,仅在当前shell中有效,其他shell启动的程序不能访问局部变量
    • 环境变量(全局变量)
      • 所有的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行
    • Shell变量
      • Shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量
name="zhangsan"//变量的声明1
name='zhangsan'//变量的声明2
name=zhangsan//变量的声明3

echo $name//变量的调用1
echo ${name}//变量的调用2
//如果调用一个未定义的变量时,输出为空
//{}可以精准框出变量名
//例如echo ${name}输出name变量的值,echo ${na}me输出na变量的值

for A in a b c d; do
echo "I have ${A} thing"
done//for循环中变量的使用

在这里插入图片描述

readonly name//设置为只读变量
unset name//删除变量

扩展——$

  • 作用
    • 给变量命令
      • 例如$JAVA_HOME,是指JAVA_HOME的环境变量。
    • 在Shell 脚本中向脚本传递参数
      • 在使用变量时,要在变量名前加上前缀“$”.
    • 命令提示符
echo $ JAVA_HOME //可以在linux终端输出jdk的home目录
A=name
echo $A//使用echo命令查看变量值

二.Shell字符串

  • 字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号(/双引号)。
  • 单引号
    • 单引号里的任何字符都会原样输出,所以单引号内不能有变量;
    • 单引号字串中不能出现单独一个的单引号,但可成对出现,作为字符串拼接使用。
  • 双引号
    • 双引号可以解析命令,而且是优先检测并解析命令后再输出字符串。
    • 双引号里可以出现转义字符。
#声明字符串
name1='zhang san'
name2="li si"

#字符串拼接--双引号
hello1="wo jiao $name1"
hello2="wo jiao "$name1""
hello3="wo jiao ${name1}"
#输出都是 wo jiao zhang san

#字符串拼接--单引号
hello1='wo jiao '$name2''

echo ${#name1}#计算字符串的长度,空格也算
echo ${name1:0:4}#从name1的第一个符(0)起输出4个字符(4)

在这里插入图片描述

三.Shell数组

  • bash仅支持一维数组,且不限数组的大小(不需要声明数组大小)。
  • 数组元素的下标由0开始编号。
  • 获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
  • 相较于Window中的数组为一块存储空间,Linux中的数组是伪对象,所以才不需要声明数组大小。
#定义数组 括号来表示数组,数组元素用"空格"符号分割开
数组名=(值1 值2 ... 值n)
#例:
favs=("足球" "蓝球" "乒乓球球" "保龄球")

#读取数组${数组名[下标]}
echo ${favs[0]}

#使用@/*符号可以获取数组中的所有元素echo ${favs [@/*]}
echo ${favs[@]}
echo ${favs[*]}

echo ${#favs[@/*]}#获取数组的长度
echo ${#favs[0]}#获取数组中单个值的长度

#由于bash中不限数组长度
#所以即使下标超出了数组的内容长度,也不会报错
#只会输出空内容,长度输出为0

在这里插入图片描述

四.Shell注释

  • 单行注释
    • 以#开头的行
  • 多行注释
    • 每行都加#
    • :<<EOF(end off file)开头,EOF结束,中间内容为注释
      • 其中EOF可以随意替换为任何字符,但要注意开始和结束一致
      • 例如:<<! 开头,!结束
:<<!
注释内容——
注释内容——
注释内容——
!

五.Shell参数传递

  • 执行Shell脚本时,向脚本传递参数,脚本内获取参数的格式为: $n。n代表一个数字
参数处理参数说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
$0执行的文件名
#!/bin/bash
echo "she11传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值