Shell编程语法
shell结构:
1. #!指定执行脚本的shell
2. #注释行
3. 命令和控制结构
变量: 临时变量和永久变量(环境变量)
设置变量: 习惯上用大写字母来命名变量。变量名只能以字母表中的字符开头,不能用数字。
变量赋值: 赋值号“=”两边应没有空格
定义时赋值,如NUM=1
将一个命令的执行结果赋给变量,如:TIME=`date`
将一个变量赋给另一个变量,如:A=$B
注:
包含多个字的变量: $NAME=Mike Ron会报错,要使用 $NAME=“Mike Ron”或$NAME=‘Mike Ron’
单引号和双引号的区别:
单引号之间的内容会被bash进行解释,会原封不动地指定给了变量。
双引号中的内容只有在【$、` `、双引号、/和换行符】五种特殊字符修饰时才可以被转义输出,其他的不动。
删除变量: #unset NAME
查看变量:
列出所有变量: # set
使用echo命令查看变量值。例如:echo $A
例如:
ls -l file1 file2 file3
$0 这个程序的文件名 ls -l
$? 执行上一个命令的返回值 $* 这个程序的所有参数 $# 这个程序的参数个数 $$ 这个程序的PID $! 执行上一个后台命令的PID
变量测试语句:test 可用[]进行简化
整数测试:
test int1 -eq int2 测试整数是否相等
test int1 -ge int2 测试int1是否>=int2
test int1 -gt int2 测试int1是否>int2
test int1 -le int2 测试int1是否<=int2
test int1 -lt int2 测试int1是否<int2
test int1 -ne int2 测试整数是否不相等
字符串测试:
test str1=str2 测试字符串是否相等
test str1!=str2 测试字符串是否不相等
test str1 或 test -n str1 测试字符串是否不为空
str1 test -z str1 测试字符串是否为空
文件测试:
test -d file 指定文件是否目录
test -f file 指定文件是否常规文件
test -x file 指定文件是否可执行
test -r file 指定文件是否可读
test -w file 指定文件是否可写
test -a file 指定文件是否存在
test -s file 文件的大小是否非0
流控制语句:
exit语句:退出程序执行,并返回一个返回码,返 回码为0表示正常退出,非0表示非正常退出。
选择语句:if语句 或 case---esac语句
格式一:if 条件 then 命令 fi
格式二:
if 条件1 then
命令1
elif 条件2 then
命令2
else
命令3
fi
多个条件的联合:
逻辑与:-a
逻辑或: -o
格式三:
;; ……… 字符串n)
循环语句:
格式一:
for 变量 in 名字表
do
命令列表
done
格式二:until当条件为真时执行;
while 条件
do
命令
done
格式三:until当条件为假时执行;
until 条件
do
命令
done
跳出循环:
break:跳出整个循环
continue:跳过本次循环,进行下次循环
参数移动:
shift:参数左移,每执行一次,S#值减1,用于分别处理每个参数,移出去的参数不再可用;
Shell命令:
read命令:从键盘读数据,赋值给变量 如:read USERNAME
expr命令:对整数型变量进行算术运算 如: $ expr 3 \* 10 , var2=`expr 30 / $var1` 【注意不是「'」而是 「`」】
注意:
运算符左右都有空格
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
awd命令:
awk -F 分隔符 '命令'
注:分隔符不填,默认为空格;
例如:输入系统中UID为0的用户名
awd -F: '$3==0 {print $1}' /etc/passwd
应用函数:
定义函数:
函数名()
{
命令列表
}
调用函数: 函数名 参数1 参数2…
注:函数的中变量均为全局变量
Shell编程语法的更多相关文章
- Linux Shell 编程语法
原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/13/2014967.html.感谢作者的无私分享 编写代码 在计划好要程序干什么以及如何使用程序的 ...
- Linux shell编程语法
由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了.(select菜单会详细讲一下) 条件判断 if条件判断 普通if条件判断: if 判断条件1; then ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- Linux系统编程(15)——shell脚本语法
Shell字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号 s ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- 【shell编程】之基础知识-语法
一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...
- linux shell 基本语法之快速上手shell编程
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- shell编程--基本格式,基本语法,运算符,expr,(()),$[]
02/shell编程 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell Shell也是一门编程语言."."号执行脚本时,会让脚本在调用者 ...
- shell编程基础语法
创建文件:touch aaa.sh 把文件变成可执行的命令: chmod +x /Users/dream-mac/Desktop/aaa.sh (这里是文件路径,如果在当前路径下,只需要把文件名写到这 ...
随机推荐
- 「专题训练」Machine Schedule(HDU-1150)
题意 在一个工厂,有两台机器\(A, B\)生产产品.\(A\)机器有\(n\)种工作模式(模式\(0\),模式\(1\)--模式\(n-1\)).\(B\)机器有\(m\)种工作模式(模式\(0\) ...
- Linux命令应用大词典-第6章 文件处理
6.1 sort:对文件中的数据进行排序 6.2 uniq:将重复行从输出文件中删除 6.3 cut:从文件每行中输出选定的字节.字符或字段 6.4 comm:逐行比较两个已经排序的文件 6.5 di ...
- (Python爬虫02) 制定爬虫的学习计划了
公司清退是件很让人郁闷的事情,精,气,神 都会受到影响.焦虑的心态,涣散的眼神, 无所适从的若无其事,人周茶凉的快速交接,各种担忧....平静的面孔波涛汹涌的心.... 认识聊天中满满的套路...还有 ...
- 天平 (Not so Mobile UVA - 839)
题目描述: 题目思路: 1.DFS建树 2.只有每个树的左右子树都平衡整颗树才平衡 #include <iostream> using namespace std; bool solve( ...
- visionpro9.0破解
visionpro9.0软件下载 提供一个visionpro9.0视频教程学习网站:点击下面链接进入. ------------------------Halcon,Visionpro高清视频教程,点 ...
- 火狐metamask账号
火狐metamask lock trophy pyramid sunny aim inmate body sense sing castle cinnamon cram
- Linux查看物理CPU个数,核数,逻辑CPU个数;内存信息
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- POJ 3525/UVA 1396 Most Distant Point from the Sea(二分+半平面交)
Description The main land of Japan called Honshu is an island surrounded by the sea. In such an isla ...
- 小程序之web-view打开外部链接
小程序之web-view - 传送门 web-view 组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面.个人类型与海外类型的小程序暂不支持使用. 一:小程序使用web-view打开链接的前 ...
- Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
作者 : 万境绝尘 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/36438365 示例代码下载 : -- CSDN : htt ...