shell的作用:

环境:

平台:VMware workstation 14

系统:CentOS Linux release 7.4.1708 (Core)


编写第一个shell脚本:

  注: sh为脚本格式   first为脚本的名称

  first脚本中的内容

给所有人加权

shell脚本的执行方式:

1 脚本的路径

绝对路径

相对路径

注:必须脚本文件要有执行权限

2      sh 脚本文件路径

注: 如果脚本文件在opt目录下,  则: sh /opt/first.sh   /  先cd /opt  再 sh first.sh

3    source 脚本路径

注:2 -a 3可以不需要执行权限   1必须要


编写第二个shell脚本:

shell脚本的构成:

1  脚本声明

#!/bin/bash   声明后面的命令可以通过此shell程序去解释并执行

2  注释信息

摘要,脚本作用,参数说明,工作效率,创建日期,作者,版本声明,第几次修改,每次返回的动态值的定义等

3  可执行的命令语句

注:所有特殊符号必须是英文模式输入

实例1:新建文件

实例2:删除文件

实例3:创建用户

cat /etc/passwd

实例4: 创建指定容量的文件

实例5: 计划任务

crontab -e

每天的下午1点半执行2.sh这个脚本一次


更友好的显示脚本内容:


重定向与管道操作:

实例6:使用密码文本文件 修改用户密码

解:  创建一个密码文件passwd.txt  密码为:123456

tom为已有用户,将密码文件导给tom 实现重置tom的密码为123456

实例7:

将ls这条命令的输出保存到 1.txt文件中

> 覆盖原有的内容

>>  追加

实例8:

将标准输出1.txt  标准错误输出2.txt中

实例9:


shell变量的作用,类型

自定义变量

  1. 声明变量不需要声明类型

  2. 可以存储不同类型内容 A=wa1

  3. 有时候使用变量时要明确变量类型

  4. 严格区分大小写

  5. 等于号两边不允许出现空格

  6. 不能使用标点符号作为变量名

  7. 不能使用bash里面的关键字作为变量名

  8. 首个字符必须是字母(a-z A-Z或_)

格式   变量名=变量值

查看变量:

echo $变量名

echo ${变量名}

通过echo进行一个输出变量,其中$是引用变量的特殊字符(必须要使用$符号)

注:echo和调用的变量之间必须要有空格

当需要一起调用多个变量时,以空格隔开

当变量名和后面的字符混淆的时候,应使用{ }将变量名括起来

变量赋值的特殊操作:

1 双引号 ""

当变量值之间有空格的时候,要使用""括起来

2 单引号 ' '

禁止引用变量值,将$符号当作普通字符来使用

3 反撇号 ``

与$() 效果一样

作用:命令替换,提取命令执行的结果

优先执行反撇号里面的内容,再执行其他

变量赋值的时候,如果想要赋值的是某条命令执行的结果,必须使用反撇号

缺点:反撇号部不是现嵌套命令替换操作,这时候使用$()来替换

4 交互式赋值 read

read 命令用于提示用户输入信息,从而实现简单交互过程(输入命令就是一个交互式过程)

多个变量名交互式赋值,赋值之间有空格,变量名也有空格

为了更友好,通常使用-p 来提示信息

5 设置变量的作用范围

export  变量名 ...

export 变量名=变量值

作用:设置全局变量,所有子shell程序都可以使用此变量

注:bash为切换环境 export导为全局变量

永久生效:

vi /etc/profile

export 变量名=变量值

source /etc/profile

整数变量的运算

expr 变量1 运算符 变量2 ...

$(())          ++  --  **

常用变量:

+   -    \*    /   %

环境变量

配置文件:

全局

单用户:

常见的环境变量

PWD :显示当前所在的工作目录

USER :  显示用户名称  可以查看当前登陆的用户

HOME:  用户的家目录 显示当前用户的家目录

LANG: 语言和字符集变量

PATH: 命令搜索路径  , 可以用tab键补全

PS1: 提示符变量

SHELL:shell程序

位置变量

预定义变量

转载于:https://blog.51cto.com/14188767/2370525

shell脚本编程规范与变量相关推荐

  1. linux之基础shell脚本编程1 基础变量赋值

    本章主要介绍函数的基础,变量赋值,逻辑运算,条件表达式,测试 linux之基础shell脚本编程1  基础变量赋值 linux之基础shell脚本编程2 if语句循环判断 linux之基础shell脚 ...

  2. 谷歌Shell脚本编程规范笔记

    原文链接 英文原文:https://google.github.io/styleguide/shellguide.html 中文原文:https://zh-google-styleguide.read ...

  3. Shell脚本编程--管道与重定向、自定义变量、特殊变量

    文章目录 shell脚本编程规范 管道与重定向 管道操作 重定向操作 Shell脚本变量 变量作用 变量的类型 变量的数据类型 自定义变量 赋值时使用引号 交互式为变量赋值read 设置变量的作用范围 ...

  4. Shell脚本编程案例集(持续更新)

    1.端口占用 检测端口占用情况,如果被占用则随机分配指定范围内端口. 脚本 #!/bin/bash # # 检测端口占用,如果占用则随机分配指定范围内端口# 端口范围 min=10800 max=12 ...

  5. shell脚本详解(一)——Shell编程规范与变量

    详解Shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官" 二.用户的登录shell ...

  6. Shell脚本——Shell编程规范及变量

    Shell编程规范及变量 一.Shell脚本概述 1.1.1 Shell基本概念 1.1.2 Shell脚本应用场景 1.1.3 Shell作用--翻译官 二.shell编程规范 2.1 用户登录sh ...

  7. Shell脚本:shell编程规范与变量

    shell编程规范与变量 一.概述:解释器,编译器,翻译官. 1.定义: 2.作用: 3.应用场景: 4.登录: 5.shell脚本基本格式: 二.重定向与管道操作: 1.交互式硬件设备: 2.重定向 ...

  8. 【拔刀吧少年】之shell编程规范与变量

    shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官"(`又称命令的组合`) 二.用 ...

  9. shell脚本编译规范(编写第一个脚本,脚本变量的作用,类型 ,了解read命令,let命令,环境变量和预定义变量)

    文章目录 shell脚本编译规范 shell脚本应用场景 shell编程规范 编写第一个脚本 执行脚本文件四种方法 echo输出友好提示信息 管道与重定向 管道操作符号"|" sh ...

最新文章

  1. MAX9814高性能麦克风
  2. mysql常用语句列表
  3. Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室
  4. 大型Java项目架构演进
  5. Python教程:序列的增量赋值
  6. Machine Monitoring System Document
  7. Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...
  8. 畅销榜第7,《魔神英雄传:神龙斗士》制作人复盘研发历程
  9. opencv学 之图像傅里叶变换dft
  10. android评论嵌套,android 嵌套的listview示例(可参照实现朋友圈评论)
  11. 【初学线段树,看这篇文章准没错】线段树(单点修改and区间修改)acm寒假集训日记22/1/10
  12. Redis:分布式锁Watch
  13. ubuntu服务器修改保存文件,Ubuntu Server 如何永久保存iptables的设置?
  14. 关闭网页html代码,网页中设置禁止查看源代码(保护源代码)
  15. 若依框架入门(前后端分离版本)
  16. NAT 内网穿透原理
  17. 上计算机课睡觉检讨书400,课堂上睡觉检讨书范文
  18. ospf-NBMA基本配置
  19. php sapi zend,安装php出现make: *** [sapi/cli/php]
  20. 如何让网页显示友好的错误信息页面

热门文章

  1. python getchar功能_getchar函数
  2. python case_Python中switch-case实现实例
  3. 模拟3个人排除买票,每人买1张票。售货员只有1张五元的钱,电影票5元一张
  4. 按下enter键禁止页面刷新
  5. java解析动态AIS原始数据
  6. springboot+sockjs进行消息推送(广播模式)
  7. Morse理论:拓扑不变性特征匹配原理
  8. ***快速理解Docker - 容器级虚拟化解决方案
  9. 如何成为一个出色的敏捷开发者?
  10. 【ZZ】大数据架构师基础:hadoop家族,Cloudera系列产品介绍