linux下shell程序(一)
shell结构
1.#!指定执行脚本的shell
2.#注释行
3.命令和控制结构
创建shell程序的步骤
第一步:创建一个包含命令和控制结构的文件。
第二步:修改这个文件的权限使它可以执行。使用chmod u+x
第三步:执行 ./example (也可以使用“sh example”执行)
Shell变量
变量:是shell传递数据的一种方法,用来代表每个取值的符号名。
Shell有两类变量:临时变量和永久变量。
临时变量是Shell程序内部定义的,其是用范围仅限于定义它的程序。对其它程序不可见。
包括:用户自定义变量,位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。
用户自定义变量
用户自定义的变量由字母或下划先开头,由字母,数字或下划线序列组成,并且大小写字母意义不同。
变量名长度没有限制。在使用变量值时,要在变量名前加上前缀“$”
如上如所示:chomd +x 4.2.sh 是对文件4.2.sh添加可执行权限。
123 $a 是一个整数赋值
1.23 $b 是一个小数赋值
xyz $c 是一个字符串赋值
$d 赋值时出现空格,赋值有误。
efgh xyz $用引号将一个含空格的字符串引起来再赋值。
设置和使用变量
设置变量:习惯上用大写字母来命令变量。变量名只能以字母表中的字符开头,不能用数字。
变量赋值:赋值号“=” 两边应没有空格。
定义时赋值,如NUM=1
将一个命令得的执行结果赋给变量,如TIME=‘date’
将一个变量赋给另一个变量,如:A=$B
使用echo命令查看变量值。例如:echo $A
列出所有的变量:#set
包含多字的变量:$NAME=Mike Ron 运行时出错
应改为:$NAME=“Mike Ron” 或 $NAME='Mike Ron'
单引号和双引号的区别:单引号之间的内容原封不动地指定给了变量。
删除变量:#unset NAME
位置变量和特殊变量
Shell解释执行用户命令时,将命令行的第一个部分作为命令名,其它部分作
为参数。由出现在命令行上的位置确定的参数称为位置参数。
特殊变量:
$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 这个程序的PID
$! 执行上一个后台命令的PID
$? 执行上一个命令的返回值 如果值为:0 则执行成
功,否则执行有问题
Shell的运算符
Shell中的运算符可以实现变量的赋值、算术运算、测试、比较等功能,运算符是构成表达式的基础。
变量赋值
Shell中使用“=”进行变量赋值,也可以用等号来改变或初值化一个变量的值。在进行赋值时是不考虑数据
类型的,这是Shell中变量数据类型的特点决定的。
算术运算符
算术运算符指的是可以在程序中实现加、减、乘、除等数学运算的运算符。Shell中常用的算术运算符如下所示。
+:对两个变量做加法
-:对两个变量做减法
*:对两个变量做乘法
/:对两个变量做除法
**:对两个变量做幂运算
%:取模运算,第一个变量除以第二个变量求余数
+=:加等于,在自身基础上加第二个变量。
-=:减等于,在第一个变量的基础上减去第二个变量
*=:乘等于,在第一个变量的基础上乘以第二个变量
/=:除等于,在第一个变量的基础上除以第二个变量
%=:取模赋值,在第一个变量对第二个变量取模运算,再赋值给第一个变量。
linux下shell程序(一)的更多相关文章
- linux 下shell程序(二)
输入和输出 输入指的是Shell程序读入数据.有从文件读取.从用户输入读取等方式读入数据.输出指的是Shell程序的运行 结果的处理,可以显示到屏幕或保存到文件. 用ceho命令输出结果 echo $ ...
- 06 Linux下Shell介绍
一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
- Linux下C程序的编辑,编译和运行以及调试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- Linux 下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别 by:授客 QQ:1033553122 1. 简介 linux下的变量可分成两种:Shell变量和环境变量. Shell变量,又称本地变量,包括私有 ...
- Linux 下shell 编程学习脚手架
linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...
- Linux 下Shell的学习
1.Shell学习 1.什么是Shell shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...
- [转] linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决,Linux使用退格键时出现^H解决方法
[From] https://www.zmrbk.com/post-2030.html https://blog.csdn.net/suifengshiyu/article/details/40952 ...
- linux 下shell 编写脚本
linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...
随机推荐
- Druid对比Vertica
怎么比较Druid和Vertica? Vertica 类似与之前介绍的ParAccel/Redshift(Druid-vs-Redshift). 不是实时注入数据: 提供SQL的全部语法支持 另外一个 ...
- Centos6.0 通过devtoolset-2工具安装gcc 4.8
详细步骤: 1.Save repository information as /etc/ yum .repos.d/slc6- devtoolset.repo on your system.then ...
- 倍福TwinCAT(贝福Beckhoff)应用教程12.3 TwinCAT控制松下伺服 NC进阶
在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如 ...
- django迁移model到别的app中
举例: 移动 users.AccessKey 到 authentication.AccessKey中 1. 移动models到新的app中 $ mv users/models/access_key.p ...
- css - inline\inline-block\block
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mysqli 实例
1.封装数据库连接(connect.php): <?php // 封装数据库连接 // 设置页面编码声明 header("Content-type: text/html; charse ...
- Python绘制分段函数
1.绘制分段函数:y=4sin(4πt)-sgn(t-0.3)-sgn(0.72-t) import numpy as npimport matplotlib.pyplot as plt#绘制分段函数 ...
- http://www.allegro-skill.com/thread-2506-1-1.html
http://www.allegro-skill.com/thread-2506-1-1.html
- FileNotFoundException: http:\localhos46087125.jpg (文件名、目录名或卷标语法不正确
java.io.FileNotFoundException: http:\localhost:8080\ipms\upload\1332146087125.jpg (文件名.目录名或卷标语法不正确.) ...
- Atitit.互联网 软件编程 数据库方面 架构 大牛 牛人 attilax总结
Atitit.互联网 软件编程 数据库方面 架构 大牛 牛人 attilax总结 Coolshell 称号.理论与c++ 阮一峰:: 理论高手与js高手 王银:理论高手 赵劼,网名老赵,c#高手 与理 ...