Shell编程

创建sh文件

  1. touch test.sh
  2. vim test.sh
  3. 写入如下内容
  4. #!/bin/bash
  5. a="hello"
  6. 运行
  7. chmod +x /root/test.sh
  8. . ./test.sh
  9. echo $a
  10. 可以运行unset撤销变量
  11. export可以设置全局变量

系统变量

  1. set 查看系统变量
  2. 常见的系统变量
  3. echo $HOME /root
  4. echo $PWD /root
  5. echo $SHELL /bin/bash
  6. echo $USER root
  7. 其他常用变量
  8. echo $? 返回上一条语句的返回值,0表示执行成功
  9. echo $$ 当前进程号
  10. echo $0 当前脚本名
  11. echo $n 获取运行脚本传递的第n个参数
  12. echo $# 传递参数的个数
  13. echo $* 表示参数列表,如果使用引号包裹输出整体
  14. echo $@ 表示参数列表,如果使用引号包裹输出还是列表
  15. for item in $@
  16. do
  17. echo $item
  18. done
  19. ./test.sh 1 2 3 4 5

单引号和双引号的区别

  1. echo "Hi, $a" Hi, hello
  2. echo 'Hi, $a' Hi, $a

算术表达式

  1. res=`expr 1 + 2`

循环

  1. for循环
  2. for item in 1 2 3
  3. do
  4. echo $item
  5. done
  6. while循环
  7. item=1
  8. while((item<=3))
  9. do
  10. echo $item
  11. let item++
  12. done
  13. case语句
  14. case $1 in
  15. a)
  16. echo "aaa"
  17. ;;
  18. b)
  19. echo "bbb"
  20. ;;
  21. *)
  22. echo "(a|b)"
  23. esac
  24. 运行./test.sh a 输出 aaa

read

  1. read -p "input a number" num
  2. echo $num

if

  1. if [ $1=a ]
  2. then
  3. echo "aaa"
  4. elif [ $1=b ]
  5. then
  6. echo "bbb"
  7. else
  8. echo "--------"
  9. fi
  10. 数值条件判断
  11. = 等于
  12. -lt 小于
  13. -le 小于等于
  14. -ep 等于
  15. -gt 大于
  16. -ge 大于等于
  17. -ne 不等于
  18. 文件条件判断
  19. -f test.sh 判断文件是否存在
  20. 其他的判断符
  21. -r 是否读权限
  22. -w 是否写权限
  23. -x 是否执行权限
  24. -f 是否存在
  25. -s 是否存在且不为空
  26. -d 是否存在并且是目录

函数

  1. function fn()
  2. {
  3. echo $1, $2;
  4. return $(($1+$2));
  5. }
  6. fn 1 2;
  7. echo $?;

cut

  1. 文本分割操作
  2. a='a|a|c|d'
  3. echo $a | cut -d '|' -f 2 输出结果 b

sort

  1. 排序操作
  2. echo $a | sort -t '|' -k 2 按照第2列字符串排序
  3. echo $a | sort -t '|' -k 2 -u 按照第2列字符串排序,去重
  4. echo $a | sort -t '|' -k 2n 按照第2列数字排序
  5. echo $a | sort -t '|' -k 2nr 按照第2列数字倒序排序
  6. cat file | sort | uniq

sed

  1. sed -i '1d' file 删除文件的第一行
  2. sed -i '1,$d' file 删除文件的所有行
  3. sed -i '$d' file 删除文件的最后一行
  4. sed -i '/aaa/'d file 删除文件中包含aaa的行
  5. sed -i 's/aaa/bbb/g' file 将所有的aaa替换成bbb

awk

  1. echo $a | awk -F "|" '{print $1}' 输出分割的第一列

Shell编程的基本语法的更多相关文章

  1. Linux Shell编程 条件判断语法

    if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...

  2. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  3. shell编程基础(二): shell脚本语法之分支语句和循环语句

    一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...

  4. 【shell编程】之基础知识-语法

    一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...

  5. 【Shell编程】Shell基本语法

    Shell 语法   Shell程序设计作为一种脚本语言,在Linux系统中有广泛的应用,本文记录了关于Shell程序设计的基础语法知识和常用命令,方便查询,熟练使用shell也需要经常实践,这对于完 ...

  6. linux shell 基本语法之快速上手shell编程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  7. shell编程--基本格式,基本语法,运算符,expr,(()),$[]

    02/shell编程 Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell Shell也是一门编程语言."."号执行脚本时,会让脚本在调用者 ...

  8. shell编程基础语法

    创建文件:touch aaa.sh 把文件变成可执行的命令: chmod +x /Users/dream-mac/Desktop/aaa.sh (这里是文件路径,如果在当前路径下,只需要把文件名写到这 ...

  9. Linux Shell编程入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

随机推荐

  1. hdu 5973 Game of Taking Stones(大数,bash game¥)

    Game of Taking Stones Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Ot ...

  2. Spring MVC + Java 多文件上传及多文件中转上传

    1.html内容 <div> <form method="post" action="/Cyberspace/main/informationBatch ...

  3. [转载]java在线比较两个word文件

    一.项目背景 开发文档管理系统或OA办公系统的时候,实现在线处理word文档的功能比较容易,但是也经常会有客户提出文档版本管理的需求,这就需要同时在线打开两个word文件,对比两个不同版本的word文 ...

  4. 【spark】SparkSession的API

    SparkSession是一个比较重要的类,它的功能的实现,肯定包含比较多的函数,这里介绍下它包含哪些函数. builder函数public static SparkSession.Builder b ...

  5. http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html深入理解Java:SimpleDateFormat安全的时间格式化

    http://www.cnblogs.com/peida/archive/2013/05/31/3070790.html

  6. 2018下C程序设计(上)第0次作业

    1.翻阅邹欣老师博客关于师生关系博客,并回答下列问题: (1)大学和高中最大的不同是什么?请看大学理想的师生关系是?有何感想? 我认为大学和高中最大的不同在于我们(包括老师)对学习的态度.在高中,学生 ...

  7. 使用Gson轻松解决复杂结构的Json数据解析

    转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803 JSON简介 JSON(JavaScript Object Notati ...

  8. 【sqlite】基础知识

    最近做一个数控系统的项目,winCE嵌入式操作系统+.Net Compact Framework环境+VS2008开发平台,开发的设备程序部署到winCE系统下的设备中运行.. 个年头,SQLite也 ...

  9. vue router 传参 获取不到query,params

    千万要注意,获取query/params 是this.$route.query 不是this.$router.query!!!

  10. 设置正确的DNS

    上网或下载软件慢问题,除去少数设备陈旧.感染病毒.网卡硬件故障和网卡驱动错误方面的因素,绝大部分原因是由于部分上网电脑或家用无线路由器设置了错误的DNS造成的,正确的方法是应该在电脑或路由器上使用本地 ...