Linux再学--shell基础2

1. 变量

在我们执行脚本的时候,脚本或命令有一些输出,需要给下一个命令或者脚本使用,那么我们就需要变量来存储;

1.1 变量的命名

在shell中变量的命名规则和c语言类似,可以使用字母、数字、下划线,但是不可以使用数字开头一般建议使用有意义的字母等命名;

1.2 变量的定义及赋值

在shell中变量不用去区分数据的类型,也就是shell的变量是弱类型的;

  • 变量名 = 值:nums=3;
  • 使用let赋值 let ret=3 + 6;
  • 将命令赋值给变量 let comm=ls;
  • 将命令的结果赋值给变量 例如使用 ( ) 或 者 ‘ ‘ : ‘ l e t C = () 或者``:`letC= ()letC=(ls -l /etc)`
    在上述赋值 = 号的两侧是不能有空格的,不然会报错;
    例如我们定义两个变量:
    在这里插入图片描述
    然后打印出变量:
    在这里插入图片描述
    注意如果要定义的变量值有空格,则需要使用""或者’'括起来,例如:
    在这里插入图片描述
    我们定义了一个字符串类型的便令str1,然后使用echo输出到了控制台;

2. 变量的引用和作用范围

变量前面加“ ” 就 是 对 变 量 的 引 用 , 一 般 规 范 的 使 用 ‘ ”就是对变量的引用,一般规范的使用` 使{变量名}`,在使用中大括号一般可以省略;那么什么时候是必须要使用的呢,这里示例如下:
定义一个变量str1,并使用echo输出;
在这里插入图片描述
可以看到这时候可以不用使用大括号,但是当我们需要在后面继续添加字符串的时候,如图:
在这里插入图片描述

如果不加大括号,jiu会把变量名和加的字符串一起认为是一个,所以输出是空;只要使用大括号就可以正确输出:
在这里插入图片描述

2. 作用范围

定义的变量默认是在当前终端有效或当前脚本有效;export 加上变量名 就可以在子进程中使用;
在这里插入图片描述

  • 首先使用export 使定义的变量在子进程中可用,
  • 然后使用 bash命令创建一个子进程,
  • 可以看到子进程中可以输出 str1的值,
  • 要退出子进程使用exit命令就可以退出;
    unset 可以取消变量的赋值 ;
    在这里插入图片描述
    可以看到使用unset后,之前定义的变量已经清空;
    一般后续不需要使用的变量,建议即时清空;

3. 环境变量

一般的我们使用env命令就可以查看系统默认定义的变量:

env | more

效果如下:
在这里插入图片描述
使用echo 变量名就可以查看某个变量的输出例如: echo $USER,注意默认的变量一般都是大写;其他常用的如下:

echo $PATH
echo $UID
echo $PS1

PS1可以修改终端的提示命令,使其显示的更加又好;

set 可以查看到比env 更多的变量;
在这里插入图片描述

4. 脚本实战

创建一个.sh文件,添加一下内容:

#!/bin/bash
# 输出当前的进程ID
echo '当前的进程ID'+$$
#读取位置参数 
pos1=$1
pos2=$2
echo 'pos1 = '${pos1}' pos2='${pos2}

我们执行脚本前最好加上可执行权限:chmod u+x test.sh,我们在脚本目录下执行./public/test.sh -l -u携带两个参数效果如下:
在这里插入图片描述
这样就可以读取到输入的变量;

技巧: 我们使用$1读取到的值有可能是空值,我们读取的时候可以加一个下划线:

echo ${1}_

这样就可以防止空置导致的程序出错;或者使用echo ${1-_};含义是如果没有参数我们就是用下划线替换,如果有就忽略下滑线;
修改脚本:

#!/bin/bash
# 输出当前的进程ID
echo '当前的进程ID'+$$
#读取位置参数 
pos1=$1
echo 'pos1 = '${pos1-_}' pos2='${2-_}' pos3='${3-_}

运行结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

简简单单lym

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

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

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

打赏作者

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

抵扣说明:

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

余额充值