Shell编程的基本语法
Shell编程
创建sh文件
touch test.sh
vim test.sh
写入如下内容
#!/bin/bash
a="hello"
运行
chmod +x /root/test.sh
. ./test.sh
echo $a
可以运行unset撤销变量
export可以设置全局变量
系统变量
set 查看系统变量
常见的系统变量
echo $HOME /root
echo $PWD /root
echo $SHELL /bin/bash
echo $USER root
其他常用变量
echo $? 返回上一条语句的返回值,0表示执行成功
echo $$ 当前进程号
echo $0 当前脚本名
echo $n 获取运行脚本传递的第n个参数
echo $# 传递参数的个数
echo $* 表示参数列表,如果使用引号包裹输出整体
echo $@ 表示参数列表,如果使用引号包裹输出还是列表
for item in $@
do
echo $item
done
./test.sh 1 2 3 4 5
单引号和双引号的区别
echo "Hi, $a" Hi, hello
echo 'Hi, $a' Hi, $a
算术表达式
res=`expr 1 + 2`
循环
for循环
for item in 1 2 3
do
echo $item
done
while循环
item=1
while((item<=3))
do
echo $item
let item++
done
case语句
case $1 in
a)
echo "aaa"
;;
b)
echo "bbb"
;;
*)
echo "(a|b)"
esac
运行./test.sh a 输出 aaa
read
read -p "input a number" num
echo $num
if
if [ $1=a ]
then
echo "aaa"
elif [ $1=b ]
then
echo "bbb"
else
echo "--------"
fi
数值条件判断
= 等于
-lt 小于
-le 小于等于
-ep 等于
-gt 大于
-ge 大于等于
-ne 不等于
文件条件判断
-f test.sh 判断文件是否存在
其他的判断符
-r 是否读权限
-w 是否写权限
-x 是否执行权限
-f 是否存在
-s 是否存在且不为空
-d 是否存在并且是目录
函数
function fn()
{
echo $1, $2;
return $(($1+$2));
}
fn 1 2;
echo $?;
cut
文本分割操作
a='a|a|c|d'
echo $a | cut -d '|' -f 2 输出结果 b
sort
排序操作
echo $a | sort -t '|' -k 2 按照第2列字符串排序
echo $a | sort -t '|' -k 2 -u 按照第2列字符串排序,去重
echo $a | sort -t '|' -k 2n 按照第2列数字排序
echo $a | sort -t '|' -k 2nr 按照第2列数字倒序排序
cat file | sort | uniq
sed
sed -i '1d' file 删除文件的第一行
sed -i '1,$d' file 删除文件的所有行
sed -i '$d' file 删除文件的最后一行
sed -i '/aaa/'d file 删除文件中包含aaa的行
sed -i 's/aaa/bbb/g' file 将所有的aaa替换成bbb
awk
echo $a | awk -F "|" '{print $1}' 输出分割的第一列
Shell编程的基本语法的更多相关文章
- Linux Shell编程 条件判断语法
if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- 【shell编程】之基础知识-语法
一.shell变量 1.定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要), 如: your_name="runoob.com" 注意,变量名和等号之间不能有空格 ...
- 【Shell编程】Shell基本语法
Shell 语法 Shell程序设计作为一种脚本语言,在Linux系统中有广泛的应用,本文记录了关于Shell程序设计的基础语法知识和常用命令,方便查询,熟练使用shell也需要经常实践,这对于完 ...
- 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 (这里是文件路径,如果在当前路径下,只需要把文件名写到这 ...
- Linux Shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
随机推荐
- 使用Selenium通过浏览器对网站进行自动化测试和相关问题
使用Selenium通过浏览器对网站进行自动化测试 自动化测试概念: 一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 广义上来讲 ...
- 51nod 1639 递推
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1639 1639 绑鞋带 基准时间限制:1 秒 空间限制:131072 K ...
- vue.js相关资料
1.https://cn.vuejs.org/v2/guide/ (中文文档)
- CrateDB——全文搜索使用的是lucene,尚不知其底层实现
CrateDB: The fast, scalable, easy to use SQL database with native full text search https://crate.io ...
- css3 伪类
::selection { 选中后的样式 } 链接 p:only-child p的父级只有一个p标签 p:only-of-type p的父级有一个p标签, 但还可以包含其他标签 p:fis ...
- 【retina】手机上 1PX 边框
1像素边框,在2倍屏幕上为2“占位”,3倍屏上为3“占位”,但设计师就要1“占位” .content h1:after, .content h2:after { border-top: 1px sol ...
- Weex入门篇——Mac 安装Weex
相关文档:http://blog.csdn.net/jasonblog/article/details/51863173 前言 相比较于React Native的“Learn once, write ...
- 《C#求职宝典》读书笔记
王小科 电子工业出版 第一篇 面试求职第一步 一个例子:一支行军中的队伍长100米,一个传令兵从队尾跑至队头,再立即返回队尾,队伍正好前进了100米.假设队伍 和传令兵行进的速度恒定,问传令兵跑了多少 ...
- 洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
传送门 题目大意: n个谷仓 ,每次关闭一个谷仓,问剩下没被关闭的谷仓是 否联通. 题解:并查集+倒序处理 代码: #include<iostream> #include<cstdi ...
- RabbitMQ之Consumer消费模式(Push & Pull)
版权声明:本文为博主原创文章,未经博主朱小厮允许不得转载. https://blog.csdn.net/u013256816/article/details/62890189概述消息中间件有很多种,进 ...