【shell 编程大全】shell前奏知识
创始人
2024-05-24 15:02:37
0

shell 前奏知识

从此刻开始跟我一起学习shell 相关知识吧

1. shell存放位置

我们既然要开始学习shell相关的知识,那自然而然需要知道当前Linux系统中都支持哪几种shell。 那么我们应该如何查找呢

[root@localhost day01]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/zsh

当我们需要下载新的shell,下载结束后,也可以在此文件中体现出来。

2. 切换shell

只知道当前Linux系统支持哪几种shell是不够的,最关键的是我们要知道如何切换shell

[root@localhost ~]# echo $SHELL
/bin/sh
[root@localhost ~]# chsh root -s /bin/bash
Changing shell for root.
Shell changed.
[root@localhost ~]# echo $SHELL
/bin/bash

3. shell 注释

注释的目的是为了干什么呢。 我们的开发跟运维一样,代码写出来都是为了给人看的,所以合理的书写注释是非常重要的。

但是在shell中 注释有哪几种呢,今天就让我们一起来看看

  • 单行注释 以符号【#】 为起点,表示单行注释
  • 多行注释 以符号【:<<】 为起点,两个字符【任意字符,可以是a】之间的都是注释。
[root@localhost day02]# cat shell01.sh
#!/bin/bash# 这是一个预备shell
:<

4. 查看当前shell类型

上面我们已经学习了各种shell的前奏知识了,尽管我们可以查看分类,切换shell了。但是我们总不能每次都切换吧。我们是不是也可以看下当前的shell 是否符合我们的预期呢

接下来让我们一起看下,如何查看当前shell类型

[root@localhost day02]# echo $SHELL
/bin/bash

5. 执行shell的几种方式

通过上面的讲解我们已经具备了shell的一些前奏知识,还差倒数第二步,如何执行shell

有的人认为shell 不是以.sh为后缀吗? 直接执行不就行了。no,no,no 如果你也是这么认为的就错了。 其实后缀对bash等来说可有可无,只要指定运行的shell就可以了。接下来让我们看下具体的实例。

5.1 第一种方式(推荐)

通过绝对路径方式来执行,需要明确指定依赖的shell执行器,以及shell文件本身

[root@localhost day02]# echo $SHELL
/bin/bash
[root@localhost day02]# /bin/bash /var/my/day02/shell02
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/zsh

5.2 第二种方式

shell文件本身用相对位置也是可以的。但是shell执行器必须明确指定

[root@localhost day02]# /bin/bash ./shell02
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/zsh

5.3 第三种方式

可以直接执行shell文件本身。但是会出现一个错误:没有执行权限

所以我们需要给其添加执行权限后,再次执行。

[root@localhost day02]# ./shell02
-bash: ./shell02: Permission denied
[root@localhost day02]# chmod +x ./shell02
[root@localhost day02]# ./shell02
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/zsh
[root@localhost day02]# 

5.4 第四种方式

其实关键字source 本身是加载的功能,但是内部含有执行的功能,所以可以执行shell文件,但是我们不推荐。

[root@localhost day02]# source ./shell02
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/zsh

6. shell的几种调试方式

现在shell文件都会执行了。但是我们不能保证每次执行的时候,写的文件都是正确的。毕竟shell文件没有单独的编辑器,都是靠纯文本的。

所以进行shell的调试就非常重要了。接下来让我们看下调试shell的几种方式

6.1 第一种方式【-n】

直接进行语法的检查。

[root@localhost day02]# /bin/bash -n ./shell03
./shell03: line 11: syntax error: unexpected end of file
[root@localhost day02]# cat ./shell03
#!/bin/bash# 这是一个预备shell
:<

6.2 第二种方式【-v】

先显示脚本所有内容,然后执行脚本,结果输出,如果执行遇到错误,将错误输出

[root@localhost day02]# /bin/bash -v ./shell03
#!/bin/bash# 这是一个预备shell
:<

6.3 第三种方式【-x】

将执行的每一条命令和执行结果都打印出来

[root@localhost day02]# /bin/bash -x ./shell03
+ :
+ cat: /etc/shells
./shell03: line 9: cat:: command not found
./shell03: line 11: syntax error: unexpected end of file

7. 筛选IP 实例

[root@localhost day02]# cat shell04
#!/bin/bashifconfig eth0 | grep -w inet | awk '{print $2}' | xargs echo "IP: "
[root@localhost day02]# /bin/bash ./shell04
IP:  10.0.2.15
  • -w 使用grep检索,按单词进行检索。
  • awk 按空格进行分段,获取第2段
  • xargs 进行命令结果传递,将echo结果跟管道符传递过来的结果拼接

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...