让你十分钟学会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
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
随机推荐
- python常用内建函数
1.input 读取控制台的输入,输出的是字符串 2.enumerate 遍历数组的时候,能够将index 和item同时返回,返回的每一项包含index,item 3.isinstance(obje ...
- jquery 获取被点击元素的id属性值
有时候可能需要获取被点击元素的一些信息,此处就以id属性为例子,进行演示一下. $(document).click(function (e){ var v_id=e.target.id; consol ...
- Do not use built-in or reserved HTML elements as component id: header
刚刚在搭建项目时发现控制台报错 查找发现是因为组件名称所致,也就是当我们起名一个header.vue的组件时,我们安装的vue插件会自动把name设置为default 这就造成了错误 把header修 ...
- [bzoj 1782] [Usaco2010 Feb]slowdown慢慢游
[bzoj 1782] [Usaco2010 Feb]slowdown慢慢游 Description 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N)从 ...
- 子Repeater获取父级Repeater绑定项的值
原文发布时间为:2010-12-27 -- 来源于本人的百度文章 [由搬家工具导入] 1.子级Repeater中绑定父级的某个字段: <%# DataBinder.Eval((Container ...
- js scrollTop, 滚动条操作
设置页面加载时滚动条自动滚到底的方法: jQuery: 复制代码 代码如下: $(function(){ var h = $(document).height()-$(window).height() ...
- css3 ani-2-trans, any to transform!!! css3 animation jingsui! Hover
http://www.daqianduan.com/example?pid=2959 animation, transition, transform or ani 2 trans
- 关于百度富文本编辑器UEdit的初始化内容失败问题
百度富文本编辑器毫无疑问是强大的,但也会出问题.这个问题是在脚本中普遍存在的,由异步性导致的加载顺序问题. 我们使用 var ue = UE.getEditor('editor', {}); 创建实例 ...
- hdu 4517(递推枚举统计)
小小明系列故事——游戏的烦恼 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)To ...
- 用Wireshark分析Socket连接建立的过程
0. 安装Wireshark,但是默认情况下,Wireshark无法捕获127.0.0.1的报文 解决方案:安装npcap,替换默认的winpacp,重新启动Wireshark,就可以看到一个名字中含 ...