shell脚本之编程规范与变量

shell脚本概念

将要执行的命令按顺序保存到一个文本文件,给该文件一个可执行权限,便可运行。

shell脚本的构成

1、脚本申明

脚本声明是指明用哪个解释器来解释

2、注释信息

注释信息是指明这个脚本的一些说明信息。就知道这个脚本时干什么用的了,这个信息不执行

3、可执行语句

进行执行的一些命令

执行shell脚本的方式

1、绝对路径

2、相对路径

3、sh 脚本路径

4、source 脚本路径

注意:其中,绝对路径与相对路径实行shell脚本时,该脚本文件必须要有可执行权限。Source脚本路径的方法,只在当前环境生效。

管道操作符 “|”

将左侧的命令输出结果,作为右侧命令的处理对象
统计passwd中的行数 cat /etc/passwd | wc –l
过滤查看passwd中wang的用户 cat /etc/passwd | grep “wang”

重定向(三种类型)

1、标准输入(/dev/stdin)

键盘输入的数据就是标准输入

2、标准输出(/dev/stdout)

显示器输出的数据就是标准输出

3、标准错误(/dev/stderr)

显示器上显示错误信息就是标准错误

4、重定向输入

先创建一个mima.tx文本,然后重定向给某个用户作为密码
pass 用户名 < mima.txt

注:密码要求必须符合系统默认要求,否则会报错密码更改终止。

5、重定向输出

1)把指定路径下的文件或者直接输入的文本重定向输入到指定文件

echo "wo zui shuai " > test.txt

注:这里不需要提前创建文件,因为当重定向输出时,未检测到该名

2)文件便会创建,创建格式自己指定即可,如:test.txt test.log test.bak

3)重定向追加,将输出文本或者内容追加到指定的文本内容之后
echo "da jia dou shuai " >> test.txt

注:这样就会不影响该文本原有的内容,还能添加上新内容,只不过是在原内容之后。

6、标准错误输出:

1)当查询不存在的文件或者目录时会提示,无法访问,没有那个文件或目录。

2)使用重定向将以上截图报错信息输出到err.txt文本中(默认没有这个文本)

3)输出报错信息需要使用2>才能输出

混合输出:

同时输出两种以上不同的输出,比如同时输出错误输出和标准输出

自定义变量(由用户自己定义、修改和使用)

1)定义x等于123,这里使用echo命令

2)继续上一步操作并显示新添加的456

注:以上截图中的引号中两个数值之间有空格,反之不显示,会失败。

3)如果想实现123456这样连续输出的话,操作如下两种(括号不同)

4)计算加减乘除使用expr命令,直接加法如下格式

5)使用变量计算加法如下格式

6)将命令设成变量查看统计系统所有用户数

定义变量和输出

1、输入格式

read 【-p “提示信息”】变量名

注:这里的懒宝宝是变量,而且是通过输入方式添加变量并先给予变量名x

2、使用两个变量相加,通过expr命令实现

8、变量的算数运算

变量的数值多用于脚本程序的过程控制,只能进行简单的整数运算,不支持小数运算,整数值的运算主要通过内部命令expr进行。格式:expr 变量1 运算符 变量2 运算符 ...
1)使用expr命令实现加减算数运算

2)使用expr命令实现乘除算数运算(包括余数)

注:从上边的截图中可以看见,乘法需要使用转义符\,才能识别进行运算;而除法应该是3.7.0…因为只能取整数,所以取3;而由123除以456答案应该是小数,但是却等于0,原因是这个命令不支持小数;最后计算456除以123的余数为87

9、预定义变量

预定义变量是bash程序预先定义好的一类特殊变量,用户只能使用预定义变量,而不能创建新的预定义变量,也不能直接为预定义变量赋值。
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$ 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
[email protected] 跟$
类似,但是可以当作数组用

10、环境变量

环境变量指的是出于运行需要而由linux系统提前创建的一类变量,主要用于设置用户的工作环境。使用env命令可以查看到当前工作环境下的环境变量。PATH变量用于设置可执行程序的默认搜索路径。环境变量的全局配置文件为/etc/profile,每个用户还有自己的独立配置文件~ /.bash_profile

原文地址:http://blog.51cto.com/13043516/2345326

时间: 2024-08-28 19:54:03

shell脚本之编程规范与变量的相关文章

Shell 脚本之编程和变量(外加实战项目)

本章目的:学会编程规范,变量的相关脚本操作和知识 一.Shell 脚本的概述 二.Shell的作用 三.写第一个Shell脚本 1.写一个脚本(到BOOT目录,查看当前位置,以长格式友好显示VML开头的所有文件) [[email protected] ~]# vim aaa.sh "随意编一个空文件以.sh为结尾" /bin/bash "开头声明,固定格式" 一个脚本 "描述性信息可加可不加" cd /boot/ pwd ls -lh vml*

关于shell脚本基础编程第四篇

shell脚本基础编程第四篇本章主要内容:函数 函数 function:             function 名称 { 命令 ; } 或 name () { 命令 ; }           定义 shell 函数.               创建一个以 NAME 为名的 shell 函数.当作为一个简单的命令启用时,           NAME 函数执行调用 shell 的上下文中的 COMMANDs 命令.当 NAME           被启用时,参数作为 $1...$n 被传递

shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先的$PATH内容, 把原本的PATH=/path/to/newcmd:$PATH, 写成了PATH=/path/to/newcmd, 并不小心写入了~/.bashrc, 并且source ~/.bashrc. 这时会发生什么? 我们如何去处理这种情况? 所有的命令都不能用了, 想回去编辑~/.bas

Shell脚本编程规范与变量

主要内容 Shell脚本编程规范 Shell脚本应用场景 Shell编程规范 管道与重定向 Shell脚本变量 自定义变量 特殊变量 Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件 给该文件可执行权限,便可运行 可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 编写第一个Shell脚本 1.编写脚本代码 使用vim文本编辑器,每行一条Linux命令, 按执行顺序依次编写:

SHELL编程规范与变量

shell相比标准开发语言比如JAVA,C,C++来说还是比较简单的,其实就是一堆命令的集合而已,初学者从简单的shell脚本学起,至于shell编程还是要有编程思想在里面,因此,循序渐进很重要,先研究格式语法,再研究编程,今天就列举一些shell里的概念,以便我们理解shell编程. 1.脚本声明 在写body之前要对shell脚本进行声明,告诉操作系统,这是一个shell文件,不声明的话系统默认为用bash来执行脚本.格式如下 #!/bin/bash(这里的bash可以换成sh.dash.t

理论:详细学习shell编程规范与变量————理论讲解 初学者一定要点进来

前言: shell脚本编程规范 shell脚本应用场景 shell编程规范 管道与重定向 shell脚本变量揭秘 自定义变量 特殊变量 本次学习了解的是变量 语言分为两大类 1.强语言:定义变量的时候需要声明数据类型,一旦声明,就不可变 jave c语言 1整型 init 1 2 3 100 长整型 long 2浮点型 单精度 float 4字节 双精度 double 8字节 带小数点就是浮点型 3.string 字符串 char 字符 英文字母字符 a 占一个字节 ? 中文汉字字符,男 占两个

Shell脚本的编程基础

程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程逻辑处理方式: 顺序执行 循环执行 选择执行 Shell编程:过程式.解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量.数组 表达式:a + b 语句:if shell脚本: 包含一些命令或声明,并符合一定格式的文本文件 格式要求:首行shebang机制 #!/bin/bash #!/usr/bin/python #!/us

Shell脚本的书写规范与优秀的开发习惯

<--目录-->1)脚本模块名2)代码框架3)函数规范4)脚本存放规范5)补充规范19条6)优秀的开发习惯 [脚本模块名]1.常规Shell脚本使用统一后辍:.sh,例:wsyht.sh2.模块的启动和停止脚本统一命名为start_{模块名}.sh和sop_{模块名}.sh3.监控脚本可以*_mon.sh为后辍,控制脚本以*_ctl.sh为后辍4.模块(及其脚本和二进制程序)命名应该代表其特性和功能,不要使用个人名字缩写等形式命名5.模块中的脚本和二进制程序命名禁止和其它脚本和二进制程序重名

shell脚本基础1 概述及变量

shell概述:在linux内核与用户之间的解释器程序通常指/bin/bash负责指向内核翻译及传达用户/程序指令相当于操作系统的"外壳" shell的使用方式:交互式--命令行:人工干预,智能化程度高,逐条解释执行,效率低非交互式--脚本:需要提前设计,智能化难度大,批量执行,效率高,方便在后台静悄悄的运行 切换shell环境:通过usermod ,chsh更改登陆shell手动执行目标shell程序[[email protected] ~]# cat /etc/shells /bi