让你十分钟学会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
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
随机推荐
- oracle存储过程、声明变量、for循环
oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out t ...
- mac python 安装参考
首先需明确: Mac 电脑上自带有 python 查看默认的 python 版本,打开终端输入命令 python,即可看到如下内容: 我的系统版本OS X 10.13.2,自带的Python版本是2. ...
- 【BZOJ4476&JSOI2015】送礼物(二分,RMQ)
ANS明显是有二分性的 二分答案,设二分值为b M(i,j)−m(i,j)j−i+k>b 显然当l<长度<r时,一端是最小值,一端是最大值. 等于l或r的时候因为可能不满足以上性质, ...
- ef code first transform,add ef power tools add-in,add tangible t4 editor for enhancement.
use ef power tools, as to .edmx file,right click at view, choose generate database from model, then ...
- dhcp 学习整理
centos 6.5 rpm: dhcp-4.1.1-25.P1.el6.x86_64 dhcp-common-4.1.1-25.P1.el6.x86_64 服务: /etc/rc.d/init.d/ ...
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- 如何将Windows8系统的磁盘格式(GPT格式)转换成Windows 7系统的磁盘格式(MBR格式)
知识点分析:随机预装Win8的电脑,磁盘为GPT格式的,如果需要安装Win7等早期版本系统,需要转换为MBR格式的,使用Diskpart命令即可完成转换.操作步骤: 注意:转换磁盘格式需要清空磁盘中的 ...
- Codeforces Gym100971 L.Chess Match (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是两个队,看最多能赢的个数,然后比较一下,看两个队是都能赢彼此,还是只有一个队赢的可能性最大.表达能力不好,意思差不多... 和田忌赛马有点像,emnnn,嗯. 代码: 1 #include& ...
- Codeforces Gym101473 F.Triangles-前缀和 (2013-2014 ACM-ICPC Brazil Subregional Programming Contest)
前缀和. 代码: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include< ...
- 10.1综合强化刷题 Day1 afternoon
一道图论好题(graph) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图, ...