让你十分钟学会shell
1、先介绍下shell的工作原理
Shell可以被称作是脚本语言,因为它本身是不需要编译的,而是通过解释器解释之后再编译执行,和传统语言相比多了解释的过程所以效率会略差于传统的直接编译的语言。
这是shell脚本简单明了的语法,给很多码农尤其是运维还是带来不少好处,尤其是和Python的结合,在大数据方面可谓是一骑绝尘。
2、
Lesson-01 第一个简单的shell
#!/usr/bin/bash
echo 'Hello world' chmod +x a.sh
sh a.sh output:
Hello world
Lesson-02 Shell中的变量
#!/usr/bin/bash
myvariable='hello world' #注意没有空格
mynum=
echo $myvariable
echo ${myvariable}
echo $mynum output:
hello world
hello world
Lesson-03 Shell中的简单的运算
#!/usr/bin/bash
a=
b=
val=`expr $a + $b`
echo "Total value:$val" val=`expr $a - $b`
echo "Total value:$val" val=`expr $a \* $b`
echo "Total value:$val" val=`expr $a / $b`
echo "Total value:$val" val=`expr $a % $b`
echo "Total value:$val" output:
Total value:
Total value:-
Total value:
Total value:
Total value:
Lesson-04 Shell中的比较运算符
#!/usr/bin/bash
a=
b=
c= if [ $a == $b ]
then
echo "a is equal to b"
fi if [ $a != $c ]
then
echo "a is not equal to b"
fi output:
a is equal to b
a is not equal to b
Lesson-05 Shell中的关系运算符
#!/usr/bin/bash a=
b=
c= if [ $a -eq $b ]
then
echo "a is eq b"
else
echo "false"
fi if [ $a -ne $b ]
then
echo "true"
else
echo "false"
fi if [ $a -gt $b ]
then
echo "a is gt b"
else
echo "a is not gt b"
fi if [ $a -ge $b ]
then
echo "true"
else
echo "false"
fi output:
a is eq b
false
a is not gt b
true
Lesson-06 Shell中的字符串
#!/usr/bin/bash h="hello"
w="world"
str=$h" "$w
echo $str echo ${str::}
echo ${str:} output:
ello world
hello
ello world
Lesson-07 Shell中的数组
#!/usr/bin/bash array=( )
array2=(aa bb cc dd ee)
value=${array[]}
echo $value #获取数组长度
length=${#array[*]}
echo $length #数组循环
for cname in ${array2[@]}
do
echo $cname
done output: aa
bb
cc
dd
ee
Lesson-08 Shell中的test命令
-e file #文件存在则返回true
-f file #文件存在可读则返回true
-w file #文件存在可写则返回true
-x file #文件存在可执行则返回true
-s file #文件存在并不为空则返回true
-S file #文件存在并为空则返回true
-d file #文件目录存在则返回true #!/usr/bin/bash filename=aa.txt
echo $filename if test -e $filename
then
echo "file is exist"
else
echo "file is not exist"
fi if test -r $filename
then
echo "the file is readable"
else
echo "the file is not readable"
fi if test -s $filename
then
echo "the file is not empty"
else
echo "the file is empty"
fi
Lesson-09 Shell中的for循环
#!/usr/bin/bash
for i in {..}
do
echo $i
done for i in { }
do
echo $i
done for file in ./*
do
echo $file
done output:
1
2
3
4
5
12
15
17
./a.sh
./aa.txt
./b.sh
./c.sh
./d.sh
./e.sh
./f.sh
./g.sh
./h.sh
./ii.sh
Lesson-10 Shell中的while循环
#!/usr/bin/bash
count=
while [ $count -lt ]
do
count=`expr $count + `
echo $count
done output:
Lesson-11 Shell中的函数
#!/usr/bin/bash #$0为自己 pp.sh
#$1为第一个参数
##$为参数个数 num1=$
num2=$
function AddFun
{
#read -p "Enter a number:" num1
#read -p "Enter another number:" num2
echo $[ $num1 + $num2 ]
}
result=`AddFun`
echo "The Result is :$result" sh pp.sh
output:
The Result is :
Lesson-12 Shell中其他相关操作
覆盖重定向 sh aa.sh > aa.txt
追加重定向 sh bb.sh >> bb.txt $ :即命令本身
$ :第一个参数.
$, $, $ ... :第2、、4个参数,依次类推。
$# 参数的个数,不包括命令本身
$@ :参数本身的列表,也不包括命令本身
$* :和$@相同,但"$*" 和 "$@"(加引号)并不同,"$*"将所有的参数解释成一个字符串,而"$@"是一个参数数组。
OVER!
本文为本人原创,转载时请注明出处,Thanks!
让你十分钟学会shell的更多相关文章
- PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony
这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...
- 十分钟学会 tmux
tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...
- 快速入门:十分钟学会Python
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- Python十分钟学会
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- 快速入门:十分钟学会Python(转)
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- 高速入门:十分钟学会Python
初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...
- 十分钟学会写shell脚本
大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...
- 十分钟学会Markdown基本语法
文章目录 Markdown 语法 一.标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 八.表格 ...
- 零基础十分钟学会用git在coding.net上传(pull)和push
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
随机推荐
- 神奇的矩阵(bzoj 2396)
Description 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. Input 题目可能包含若干组数据. 对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为 ...
- CODEVS【3556】科技庄园
题目描述 Description Life是codevs的用户,他是一个道德极高的用户,他积极贯彻党的十八大精神,积极走可持续发展道路,在他的不屑努力下STN终于决定让他在一片闲杂地里种桃,以亲身实践 ...
- c language compile process.
- AVRStudio 6 添加调试功能
下载这个文件并安装就可以了:http://avr-jungo-usb.software.informer.com/download/ 具体可以看这个贴子:http://electronics.stac ...
- jsp和java获取文件或路径
1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test. ...
- 初始化home目录
mkdir WORKM 公共资料 科学研究 临时文档 项目开发 正在学习 专职教学 自作文档
- vue 设置头文件
vue的头文件是在index.html文件中设置的,毕竟vue的入口 先说一下标签页的名字: 就是这个名字的设置,要想每个标签页的名字都不一样,需要做以下这三步:1. 首先,在index.html文件 ...
- windows下pip安装python module失败
C:\Python27\pywin32-214>setup.py -q install Building pywin32 2.7.214.0 Traceback (most recent cal ...
- C#根据经纬度获取物理地址
废话不多说,直接上代码: 1.首先新建几个类,定义一些属性: public class BaiDuGeoCoding { public int Status { get; set; } public ...
- 牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)
H.武 链接:https://www.nowcoder.com/acm/contest/86/H 这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己 ...