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的更多相关文章

  1. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  2. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

  3. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  4. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  5. 快速入门:十分钟学会Python(转)

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  6. 高速入门:十分钟学会Python

    初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...

  7. 十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...

  8. 十分钟学会Markdown基本语法

    文章目录 Markdown 语法 一.标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 这是五级标题 这是六级标题 二.字体 三.引用 四.分割线 五.图片 六.超链接 七.列表 八.表格 ...

  9. 零基础十分钟学会用git在coding.net上传(pull)和push

    ---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...

随机推荐

  1. BZOJ3203 保护出题人(defend)

    保护出题人(defend) 题目描述 输入 第一行两个空格隔开的正整数n和d,分别表示关数和相邻僵尸间的距离. 接下来n行每行两个空格隔开的正整数,第i + 1行为 a i和 x i,分别表示相比上一 ...

  2. Reactor模式总结

    Reactor是基于NIO中实现多路复用的一种模式. 什么是Reactor模式 同步的等待多个事件源到达(采用select()实现) 将事件多路分解以及分配相应的事件服务进行处理,这个分派采用serv ...

  3. iPhone屏幕旋转

    iPhone屏幕内容旋转 在iOS6之前的版本中,通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个 ...

  4. 自动从网站上面下载文件 .NET把网站图片保存到本地

    原文发布时间为:2009-11-19 -- 来源于本人的百度文章 [由搬家工具导入] 自动从网站上面下载文件 .NET把网站图片保存到本地简单范例:这个范例是把百度联盟这个logo保存到根目录下面,当 ...

  5. 转 网络编程学习笔记一:Socket编程

    题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有 ...

  6. python3字符串操作总结

    字符串截取  >>>s = 'hello' >>>s[0:3] 'he' >>>s[:] #截取全部字符 'hello' 消除空格及特殊符号 s. ...

  7. bjtu 1846. Infinity的装备[状压dp+dfs/bfs]

    https://citel.bjtu.edu.cn/acm/oj/problem/1846 1846. Infinity的装备 时间限制 1000 ms 内存限制 64 MB 题目描述 “测试服终于下 ...

  8. 这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!

    在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭 ...

  9. spring配置文件中配置sessionFactory失败

    配置失败主要原因有两个: <bean id="studentDaoImp" class="com.gxwuz.maven.dao.StudentDaoImp&quo ...

  10. Oracle数据库搭建