Linux之shell脚本

1、定义变量(无引号、单引号、双引号)

无引号

单引号

双引号

2、输出变量值(两种方法)、换行输出、不换行输出

  Echo  -e 解析转义字符 \n 表示换行

3、修改变量值,追加新内容,并输出

4、使用read赋值变量值,并输出,对选项-p-n进行练习

-p可以设置输入提示

-n表示读取n个字符

5、输出去系统环境变量

使用env和export命令查看系统当前的环境变量

6、特殊变量的应用:$?

$:表示查看当前的进程号(PID

?:表示返回上一个命令的状态码(0表示成功,非0表示失败或异常)

7、输出重定向”>”,”>>”,输出到wlh.sh(自己姓名首拼)

一个>:表示对原文件的内容进行了“覆盖”,即清空原文件内容

两个>>:表示在原文件的基础上“追加”新内容

8、输入重定向”<”练习(与ppt中不同的案例)

9、管道”|”练习。

|”连接两个命令,左侧命令的输出成为右侧命令的输入

实验思考

  1. 用命令的执行结果为变量赋值的两种方法`command ` $(command ),哪个更好?

答:反单引号和括号是一样的,在执行一条命令时都会将反单引号或者括号的中的语句执行一次,再将结果加入到原命令重新执行一次,根据POSIX规范,要求系统工程师采用的是$(命令)的形式。所以,我们最好还是遵循这个规范,少用``,多用$()

  1. 使用变量值的两种形式$variable_name    ${variable_name}区别是什么?

答:$variable_name${variable_name}都可以调用变量,但是${variable_name}可以只截取变量的一部分,而$variable_name不可以。其中${variable_name}截取字符类似于数组中索引。

  1. 如何验证变量的作用范围?

Shell变量的作用域可以分为三种:

有的变量可以在当前Shell会话中使用,这叫做全局变量(globalvariable)

有的变量只能在函数内部使用,这叫做局部变量(localvariable)

而有的变量还可以在其它 Shell 中使用,这叫做环境变量(environmentvariable)

关于对全局变量的验证

创建两个shell文件,1.sh2.sh,其中两个文件的内容为下图所示,可以看到我们在1.sh中定义的b的值,在执行2.sh时,可以输出在1中的定义。

关于局部变量的验证:

写一个函数利用local定义一个局部变量a,那么我们在执行函数时,并不会修改全局变量当中值。即为局部变量

关于环境变量的验证:

环境变量分父shell和子shell,父shell可以理解为全局变量,父shell中的变量不能在子shell中调用,需要通过export命令将变量导出到子shell,我们可以通过echo $$l来查看当前的进程号,可以通过bash进入子shell来进行验证如下图。

实验拓展

将管道、findgrep结合进行练习。

find是实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找

grep 是找出文件的内容为所要指定的信息。

通过管道“|”将二者结合起来 可以查找出包含特定信息的特定文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值