shell基础相关命令

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

无引号:赋值时,如果变量内容中有空格,则会造成赋值不完整。而在输出内容时,会将含有空格的字符串视为一个整体来输出;如果内容中有命令、变量等,则会先把变量、命令解析出结果,然后输出最终内容;如果字符串中带有空格等特殊字符,则有可能无法完整地输出,因此需要改加双引号。一般连续的字符串、数字、路径等可以不加任何引号进行赋值和输出,特别是对变量赋值时最好是用引号代替无引号的情况。

单引号:所见即所得,即输出时会将单引号内的所有内容都原样输出,或者描述为单引号里面看到的是什么就输出什么,这称为强引用。

双引号:输出双引号内的所有内容;如果内容中有命令要反引下、变量、特殊转义符等,会先把变量命令、转义字符解析出结果,然后再输出最终内容,这称为弱引用。

e07793628bbb4950874375542d9ffbd5.png

69de0ef8a929475cbc9f178e769d7d84.png

 

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

输出换行默认无参数即可;

输出不换行添加参数-n即可。

a8450f04783541b5a083dd79cbde7ad4.png

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

6148ca100be3448686ce41e8e98a2308.png

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

Read命令通常用在shell脚本中与用户进行交互的场合,该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。

read常用参数意义

-s  隐藏用户键入的值

-p  打印提示信息来提示用户输入正确的内容

-t  设置用户输入的时间限制;超时则退出程序

-n  限制用户输入内容的长度(单位是字符位)

-r  允许用户输入特殊字符,如 空格、/、\、?等

846f14cfb0b84a95bd8eccb524267dbb.png

5、输出去系统环境变量

435c7d5d4f5248c7a9a73cc28d61a61e.png

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

Shell 中特殊变量及用法:

$$ Shell本身的PID(ProcessID)

$! Shell最后运行的后台Process的PID

$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行不正确。

$- 使用Set命令设定的Flag一览

$@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1""$2"… "$n"的形式输出所有参数。

$# 添加到Shell的参数个数

$0 Shell本身的文件名

$1~$n 添加到Shell的各参数值。

526afb223b934b78bdbaabf9cd2f1b29.png

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

 >文件 输出重定向到一个文件或设备 覆盖原来的文件中

>>文件 输出重定向到一个文件或设备 追加原来的文件

cat 文件a > 文件b 将文件a的内容覆盖到文件b中

cat 文件a >> 文件b 将文件a的内容追加到文件b的尾部

10b9c96e11f34be395551b9357ded4ad.png

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

a5d60c40b53c4b18a9f945f347be01ff.png

9、管道”|”练习。 

一个命令的输出可以通过管道作为另一个命令的输入,可以理解成是一个容器,存放再终端显示器的内容。连接两个命令,把左边(第一个命令)的输出(显示再终端上的内容),当作第二个命令的输入。管道“|”一般结合more、grep命令使用,主要是分屏查看终端显示的内容。

aecee78dde994f1995a92fad8c58e63b.png

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

`command ` 这种方式把命令用反引号` `包围起来,反引号和单引号非常相似,容易产生混淆,所以不推荐使用这种方式;$(command )这种方式把命令用$()包围起来,区分更加明显,所以推荐使用这种方式。

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

使用${}这种方式的好处是可以方便的实现两个变量的连接,同时看着也比较清楚。

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

变量的作用范围是指变量在程序中的有效范围,可分为全局变量和局部变量两种

全局变量:定义在所有函数之外(也可以在函数体内未定义),作用于整个代码的变量

局部变量:定义在函数体内,只作用于函数体内的变量

没有声明的变量都是全局变量,在函数体外声明的变量也是全局变量,只有在函数体内部声明的变量才是局部变量。

99d5d24c36f049089c31f2bc48ff83ff.png

 

将管道、find、grep结合进行练习。

管道|就是用来将符号|前的命令输出作为符号后命令的输入,多个命令的顺序一定是从左到右顺序执行。

ceda4cefb17c4924b36ab484887b628e.png

d1987eea72f145ed933677d2d75a2508.png 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值