Error[8]: Undefined offset: 52, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

目录

Shell脚本概述

什么是Shell?

Shell脚本的概念

Shell脚本应用场景

Shell的作用

编写脚本代码

 创建shell程序步骤

执行脚本文件

重定向与管道 *** 作

 交互式硬件设备

重定向 *** 作

 管道 *** 作符号“|”

 Shell变量的作用、类型

变量的作用

变量的类型

赋值时使用引号

 交互式定义变量

交互式定义变量(read)

设置变量的作用范围(export)

整数变量的运算(expr)

 let命令

 bc命令(相当于计算器)

精确到小数点后几位:scale

特殊的Shell变量

环境变量

​ 只读变量

 位置变量

 预定义变量

 本章总结


Shell脚本概述 什么是Shell?

Shell是一个命令解释器,它在 *** 作系统的最外层,负责直接与用户进行对话,把用户的输入解释给 *** 作系统,并处理各种各样的 *** 作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的,我们所输入的命令计算机是不识别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。

Shell脚本的概念 Shell脚本应用场景

Shell的作用

Linux系统中的Shell是一个特殊的应用程序,它介于 *** 作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的 *** 作指令(命令)并进行解释,将需要执行的 *** 作传递给内核执行,并输出执行结果。

常见的 Shell 解释器程序有很多种,使用不同的 Shell 时,其内部指令、命令行提示符等方面会存在一些区别。通过/etc/shells 文件可以了解当前系统所支持的 Shell 脚本种类。

[root@DL ~]# cat /etc/shells
/bin/sh   #是bash命令的软链接  (已经被/bin/bash所替换)
/bin/bash   #基准于GNU的框架下发展出的Shell。
/usr/bin/sh   #已经被bash所替换。
/usr/bin/bash   #centos和redhat系统默认使用bash shell
/bin/tcsh   #csh的增强版,与csh完全兼容 整合了csh,提供更多的功能。
/bin/csh   #已经被/bin/bash 所替换  (整合C shell,提供更多的功能)
编写脚本代码

赋予可执行权限

使脚本具有可执行属性

 

 

 

 创建shell程序步骤
  1. 创建一个包含命令和控制结构的文件
  2. 编辑完之后修改这个文件的权限使他可以执行
  3. 检测语法错误(命令集合是否正确)
  4. 执行我们的脚本 ./dome.sh
执行脚本文件

方法一:脚本文件路径(绝对路劲与相对路径)(必须有执行的权限)

方法二:sh脚本文件路径

 方法三:source脚本文件路径

方法三也可以用“.”执行

方法四:sh < 脚本文件路径

方法五:cat 脚本文件路径 | sh

方法六:bash 脚本文件路径

重定向与管道 *** 作  交互式硬件设备

重定向 *** 作

 定向输入

 

 定向输出

 

 

 /dev/null:把它看作"黑洞",所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然 而 /dev/null 对命令行和脚本都非常的有用
echo kgc > /dev/null
cat /dev/null #什么信息也看不到

 标准错误输出

 

 

 

 管道 *** 作符号“|”

管道(pipe) *** 作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。 
在 Shell 脚本应用中,管道 *** 作通常用来过滤所需要的关键信息。
$bash  $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为bash。

 

 

 

 Shell变量的作用、类型 变量的作用

用来存放系统和用户需要使用的特定参数(值)

变量的类型

定义一个新变量

变量名以字母或下划线开头,区分大小写,建议全大写

变量名=变量值

查看变量的值

echo $变量名

 

 

echo选项
echo -n 表示不换行输出
使用echo -e输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:

注:\转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用

取消变量名:unset

赋值时使用引号

先通过 which useradd 命令查找出 useradd 命令的程序位置,然后根据查找结果列出文件属性

使用反撇号难以在一行命令中实现嵌套命令替换 *** 作,这时可以改用 “$()”来代替反撇号 *** 作,以解决嵌套的问题

 交互式定义变量

read 命令

使用 Bash 的内置命令 read 来给变量赋值。 
用来提示用户输入信息,从而实现简单的交互过程。执行时将从标准输入设备(键盘)读入 一行内容,并以空格为分隔符,将读入的各字段依次赋值给指定的变量(多余的内容赋值给 最后一个变量)。若指定的变量只有一个,则将整行内容赋值给此变量。

交互式定义变量(read)

设置变量的作用范围(export)

整数变量的运算(expr)

常用运算符

 

 

 

 

 

 

 

 用shell脚本打印九九乘法表

 let命令

 bc命令(相当于计算器)

 

精确到小数点后几位:scale

特殊的Shell变量 环境变量

常见的环境变量

设置在root下能 *** 作所有命令

 只读变量

用于变量值不允许被修改的情况

 位置变量

表示为$n,n为1~9之间的数字

 

 预定义变量

 

 

 本章总结

 

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Shell编程规范与变量_java_内存溢出

Shell编程规范与变量

Shell编程规范与变量,第1张

目录

Shell脚本概述

什么是Shell?

Shell脚本的概念

Shell脚本应用场景

Shell的作用

编写脚本代码

 创建shell程序步骤

执行脚本文件

重定向与管道 *** 作

 交互式硬件设备

重定向 *** 作

 管道 *** 作符号“|”

 Shell变量的作用、类型

变量的作用

变量的类型

赋值时使用引号

 交互式定义变量

交互式定义变量(read)

设置变量的作用范围(export)

整数变量的运算(expr)

 let命令

 bc命令(相当于计算器)

精确到小数点后几位:scale

特殊的Shell变量

环境变量

​ 只读变量

 位置变量

 预定义变量

 本章总结


Shell脚本概述 什么是Shell?

Shell是一个命令解释器,它在 *** 作系统的最外层,负责直接与用户进行对话,把用户的输入解释给 *** 作系统,并处理各种各样的 *** 作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的,我们所输入的命令计算机是不识别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。

Shell脚本的概念
  • 将要执行的命令按顺序保存到一个文本文件
  • 给该命令可执行权限
  • 可结合各种Shell控制语句以wan'c
Shell脚本应用场景
  • 重复性 *** 作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
  • ……

Shell的作用

Linux系统中的Shell是一个特殊的应用程序,它介于 *** 作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的 *** 作指令(命令)并进行解释,将需要执行的 *** 作传递给内核执行,并输出执行结果。

常见的 Shell 解释器程序有很多种,使用不同的 Shell 时,其内部指令、命令行提示符等方面会存在一些区别。通过/etc/shells 文件可以了解当前系统所支持的 Shell 脚本种类。

[root@DL ~]# cat /etc/shells
/bin/sh   #是bash命令的软链接  (已经被/bin/bash所替换)
/bin/bash   #基准于GNU的框架下发展出的Shell。
/usr/bin/sh   #已经被bash所替换。
/usr/bin/bash   #centos和redhat系统默认使用bash shell
/bin/tcsh   #csh的增强版,与csh完全兼容 整合了csh,提供更多的功能。
/bin/csh   #已经被/bin/bash 所替换  (整合C shell,提供更多的功能)
编写脚本代码
  • 使用vim文本编辑器
  • 每行一条Linux命令,按执行顺序依次编写

赋予可执行权限

使脚本具有可执行属性

 

 

 

 创建shell程序步骤
  1. 创建一个包含命令和控制结构的文件
  2. 编辑完之后修改这个文件的权限使他可以执行
  3. 检测语法错误(命令集合是否正确)
  4. 执行我们的脚本 ./dome.sh
执行脚本文件

方法一:脚本文件路径(绝对路劲与相对路径)(必须有执行的权限)

方法二:sh脚本文件路径

 方法三:source脚本文件路径

方法三也可以用“.”执行

方法四:sh < 脚本文件路径

方法五:cat 脚本文件路径 | sh

方法六:bash 脚本文件路径

重定向与管道 *** 作  交互式硬件设备
  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错的信息

重定向 *** 作

 定向输入

 

 定向输出

 

 

 /dev/null:把它看作"黑洞",所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然 而 /dev/null 对命令行和脚本都非常的有用
echo kgc > /dev/null
cat /dev/null #什么信息也看不到

 标准错误输出

 

 

 

 管道 *** 作符号“|”

管道(pipe) *** 作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。 
在 Shell 脚本应用中,管道 *** 作通常用来过滤所需要的关键信息。
$bash  $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为bash。

 

 

 

 Shell变量的作用、类型 变量的作用

用来存放系统和用户需要使用的特定参数(值)

  • 变量名:使用固定的名称,由系统预设或用户定义
  • 变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
  • 自定义变量:由用户自己定义、修改和使用
  • 特殊变量:环境变量,只读变量,位置变量,预定义变量

定义一个新变量

变量名以字母或下划线开头,区分大小写,建议全大写

变量名=变量值

查看变量的值

echo $变量名

 

 

echo选项
echo -n 表示不换行输出
使用echo -e输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:

  • \c 不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n
  • \n 换行
  • \t 转义后表示插入tab,即制表符

注:\转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用

取消变量名:unset

赋值时使用引号
  • 双引号:允许通过$符号引用其他变量值

  • 单引号:禁止引用其他变量值,$视为普通字符

  • 反撇号(`):命令替换,提取命令执行后的输出结果

先通过 which useradd 命令查找出 useradd 命令的程序位置,然后根据查找结果列出文件属性

使用反撇号难以在一行命令中实现嵌套命令替换 *** 作,这时可以改用 “$()”来代替反撇号 *** 作,以解决嵌套的问题

 交互式定义变量

read 命令

使用 Bash 的内置命令 read 来给变量赋值。 
用来提示用户输入信息,从而实现简单的交互过程。执行时将从标准输入设备(键盘)读入 一行内容,并以空格为分隔符,将读入的各字段依次赋值给指定的变量(多余的内容赋值给 最后一个变量)。若指定的变量只有一个,则将整行内容赋值给此变量。

交互式定义变量(read)
  • -p 提示用户的信息
  • -n 定义字符数
  • -s 不显示用户输入的内容,常用于输入密码  read -s -p "input your password:" pass
  • -t 定义超时时间,超过多长时间没输自动退出

设置变量的作用范围(export)

整数变量的运算(expr)

常用运算符

  • 加法运算:+
  • 减法运算:-
  • 乘法运算:\*
  • 除法运算:/
  • 求模(取余)运算:%

 

 

 

 

 

 

 

 用shell脚本打印九九乘法表

 let命令

 bc命令(相当于计算器)

 

精确到小数点后几位:scale

特殊的Shell变量 环境变量
  • 由系统提前创建,用来设置用户的工作环境
  • 配置文件:/etc/profile、~/.bash_profile

常见的环境变量

  • PWD、PATH
  • USER、SHELL、HOME

设置在root下能 *** 作所有命令

 只读变量

用于变量值不允许被修改的情况

 位置变量

表示为$n,n为1~9之间的数字

 

 预定义变量
  •  $#:命令行中位置变量的个数
  • $*:所有位置变量的内容
  • $?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0时表示执行异常或出错
  • $@:列出所有位置参数,但是是以单个的形式列出
  • :当前执行的进程/进程名
  • $$:返回当前进程的进程号
  • $!:返回最后一个后台进程的进程号
  • Shell的作用与应用场景

 

 

 本章总结
  • Shell脚本的编写规范与执行方法
  • 重定向与管道的作用及其使用方法
  • 自定义变量赋值时单引号、双引号、反撇号的使用方法
  • 数值变量的常用运算符:+、-、\*、/、%
  • 环境变量、只读变量、位置变量、预定义变量的用途

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/724999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存