让你十分钟学会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
---恢复内容开始--- 对于入门者来说,特别是刚刚接触计算机的人来说,模仿是最快的学习方式了,先能够会使用(对于初学者来说,这种使用新事物的感觉很能爽的)至于原理,以后再说.下面先让初学者快速的学会 ...
随机推荐
- 深海机器人(cogs 742)
«问题描述:深海资源考察探险队的潜艇将到达深海的海底进行科学考察.潜艇内有多个深海机器人.潜艇到达深海海底后,深海机器人将离开潜艇向预定目标移动.深海机器人在移动中还必须沿途采集海底生物标本.沿途生物 ...
- Playing with String(codeforces 305E)
题意:刚开始你只有一个字符串每次能选择一个有的字符串 s,找到 i,满足s[i - 1] = s[i + 1],将其分裂成 3 个字符串s[1 · · · i - 1]; s[i]; s[i + 1 ...
- javascript屏蔽脏字
原文发布时间为:2009-04-16 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...
- java常见设计模式简要总结
设计模式六大原则 1.开放封闭原则:对扩展开放,对修改封闭,意即程序拓展时不要动原有的代码 2.LSP原则:任何基类可以出现的地方,子类一定可以出现 3.依赖倒置原则:使用接口,依赖于抽象而不是具体 ...
- input上报流程分析【转】
转自:http://blog.chinaunix.net/uid-28320320-id-3389196.html .参考文章 [Andorid]input系统的事件处理 .源码分析 linux )查 ...
- LeetCode OJ--Binary Tree Zigzag Level Order Traversal *
https://oj.leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ 树的层序遍历 使用两个 stack 或者 vect ...
- LeetCode OJ-- Balanced Binary Tree ***
https://oj.leetcode.com/problems/balanced-binary-tree/ 判断一个二叉树,是否为平衡的.如果是平衡的,则它的每个子树的左右子树高度差不大于1. 递归 ...
- AC日记——[国家集训队2010]小Z的袜子 cogs 1775
[国家集训队2010]小Z的袜子 思路: 传说中的莫队算法(优雅的暴力): 莫队算法是一个离线的区间询问算法: 如果我们知道[l,r], 那么,我们就能O(1)的时间求出(l-1,r),(l+1,r) ...
- 牛客网 牛客小白月赛2 G.文
G.文 链接:https://www.nowcoder.com/acm/contest/86/G 这个题wa了一发,有点智障,浮点数,式子里面要*1.0,忘了,然后wa了,改了就过了(脑子有坑) 代码 ...
- 使用OPENROWSET爆破SQL Server密码
使用OPENROWSET爆破SQL Server密码 OPENROWSET函数是SQL Server提供的一个连接函数.它可以用于使用OLE DB方式连接一个数据库,并进行数据查询等操作.使用该函 ...