【LINUX 运维】第二章 shell 基础001之shell 脚本的执行方式

举报
Yuchuan 发表于 2022/04/01 19:37:57 2022/04/01
【摘要】 shell 编程基础

一、Shell 概述

1、什么是 Shell

2shell 的分类

Shell 类别

易学性

可移植性

编辑性

快捷性

Bourne  Shell  (sh)

容易

较差

较差

Korn  Shell  (ksh)

较难

较好

较好

Bourne  Again  (Bash)

较好

POSIX  Shell  (psh)

较难

较好

C  Shell  (csh)

较难

较好

较好

TC  Shell  (tcsh)









Shell 的两种主要语法类型有 Bourne  C,这两种语法彼此不兼容。Bourne 家族主要包括 shkshBashpshzsh

C 家族主要包括:csh、tcsh  Bash  zsh 在不同程度上支持 csh  的语法)。我们可以通过/etc/shells 文件来查询 Linux 支持的 Shell。命令如下:

[root@master-google ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@master-google ~]#

二、Shell 脚本的执行方式

1echo 命令

[root@localhost  ~]#  echo  [选项]  [输出内容]
选项:
-e:	支持反斜线控制的字符转换(具体参见表 11-2)
-n:	取消输出后行末的换行符号(就是内容输出后不换行)
例子 1:
[root@master-google ~]# echo "yuchuan huaying hello!"
#echo 的内容就会打印到屏幕上。
yuchuan huaying hello!
[root@master-google ~]#
例子 2:
[root@master-google ~]# echo -n "yuchuan huaying hello!"
yuchuan huaying hello![root@master-google ~]#
#如果加入了“-n”选项,输出内容结束后,不会换行直接显示新行的提示符。

 echo 命令中如果使用了-e选项,则可以支持控制字符,如表 11-2 所示:

控制字符

                     

\\

输出\本身

\a

输出警告音

\b

退格键,也就是向左删除键

\c

取消输出行末的换行符。和-n选项一致

\e

ESCAPE 

\f

换页符

\n

换行符

\r

回车键

\t

制表符,也就是 Tab 

\v

垂直制表符

\0nnn

按照八进制 ASCII 码表输出字符。其中 0 为数字零,nnn 是三位八进制数

\xhh

按照十六进制 ASCII 码表输出字符。其中 hh 是两位十六进制数
















例子 3:
[root@master-google data]# echo -e "\\ \a"
\
#这个输出会输出\,同时会在系统音响中输出一声提示音

例子 4:
[root@master-google data]# echo -e "ab\bc"
ac
#这个输出中,在 b 键左侧有“\b”,所以输出时只有 ac

例子 5:
[root@master-google data]# echo -e "a\tb\tc\t\nd\te\tf"
a       b       c
d       e       f
#我们加入了制表符“\t”和换行符“\n”,所以会按照格式输出

例子 6:
[root@master-google data]# echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a       b       c
d       e       f
#还是会输出上面的内容,不过是按照八进制 ASCII 码输出的。

也就是说 141 这个八进制,在 ASCII 码中代表小写的a,其他的以此类推。

例子 7:
[root@master-google data]# echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a       b       c
d       e       f
#如果按照十六进制 ASCII 码也同样可以输出
[root@master-google data]#

echo 命令还可以进行一些比较有意思的东西,比如:

例子 8:
[root@master-google data]# echo -e "\e[1;31m yuchuan huaying! \e[0m"
 yuchuan huaying!

这条命令会把 yuchuan huaying 按照红色输出。解释下这个命令\e[1 是标准格式,代表颜色输出开始,\e[0m 代表颜色输出结束,31m 定义字体颜色是红色。echo 能够识别的颜色如下:30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色。

例子 9:
[root@master-google data]#
[root@master-google data]# echo -e "\e[1;42m yuchuan huaying \e[0m"
 yuchuan huaying

这条命令会给 yuchuan huaying 加入一个绿色的背景。echo 可以使用的背景颜色如下:40m=黑色,41m=红色,42m=绿色,43m=黄色,44m=蓝色,45m=洋红,46m=青色,47m=白色。

2Shell 脚本的执行

[yuchuanduan69@master-google temp]$ vim yuchuan.sh
#!/bin/bash
#Author: yuchuan huaying (yuchuan.duan@outlook.com)
#this is my first program

echo -e "Yuchuan Huaying Hello!"

Shell 脚本写好了,那么这个脚本该如何运行呢?在 Linux 中脚本的执行主要有这样两种种方法:

²   赋予执行权限,直接运行

这种方法是最常用的 Shell 脚本运行方法,也最为直接简单。就是赋予执行权限之后,直接运行。当然运行时可以使用绝对路径,也可以使用相对路径运行。命令如下:

[yuchuanduan69@master-google temp]$ chmod u+x yuchuan.sh
#赋予执行权限
[yuchuanduan69@master-google temp]$ /home/yuchuanduan69/MasterData/temp/yuchuan.sh
Yuchuan Huaying Hello!
#使用绝对路径运行
[yuchuanduan69@master-google temp]$ ./yuchuan.sh
Yuchuan Huaying Hello!
#因为我们已经在/home/yuchuanduan69/MasterData/temp/ 目录当中,所以也可以使用相对路径运行
[yuchuanduan69@master-google temp]$

²   通过 Bash 调用执行脚本

这种方法也非常简单,命令如下:

[yuchuanduan69@master-google temp]$ bash yuchuan.sh
Yuchuan Huaying Hello!
[yuchuanduan69@master-google temp]$
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。