,谁帮我写个简单的SHELL脚本啊,LINUX里面的,大一刚接触,明天检查,也不要太复杂,也不能过于简单,谢谢

作者&投稿:那金 (若有异议请与网页底部的电邮联系)
liunx SHELL脚本~

Shell脚本基本知识

概述:shell其实是内核与用户之间的一个接口,

shell脚本

如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。

执行shell脚本

要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。

为了使用bash shell赖执行脚本magic,其命令是:bash magic或者./magic

echo命令:

echo “this is an example of the echo command!”

屏幕上就会回显“this is an example of the echo command!”

#符号

用于在shell脚本肿可以包含注解入口

echo “hello”

#this is a comment line. this would not produce any output!

echo “world!”

第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息

变量:

可以在任何时间通过简单的赋值来创建。

语法:

-

Linux 中的所有变量都被当作字符串

引用变量:

$符号用于引用一个变量的内容

variable1 = ${variable2}

读入值给变量

在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。

$read fname

本地和全局shell变量

局部变量

当引用shell时,只有创建它的shell能够知道变量的存在

全局变量

称为子shell

shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。

环境变量:

通过改变这些变量的值,用户能够定制此环境

一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL

HOME变量

Linux系统中的每个用户都有一个相关的称作HOME的目录

当一个用户登录后,进入相应的HOME的目录

$ echo $HOME

PATH变量

包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。

PS1变量

PS1(Prompt String 1)变量包含了shell提示符,$符号

$ PS1 = “HELLO>”

HELLO>



PS2变量

是为第二个提示符设置值的环境变量

LOGNAME变量

包含用户的注册名字

$echo “${LOGNAME}”

SHLVL 变量

该变量包含当前工作的shell level

SHELL变量

环境变量存储了用户缺省的shell

env命令

可用来查看所有的已移出的环境变量表和它们各自的值!



命令替换

在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换

echo “the data is `date`”

expr命令

用于求之算术表达式。该命令的输出被送到标准输出

$ expr 4 + 5

将在屏幕上显示9

算术展开:

你可以在$((…)) 中括一个表达式,用下面的命令来计算它的值;

$((expression))

example1

编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。

所有未应答的询问总数=所有询问的总数-应答的询问的数量

※ ※※※※※※※※※※※※※※※※※※※※※※※

条件执行

test和[]

求值表达式,并返回true(0)或false()

数值测试:

-eq 等于则为真

-ne 不等于则为真

-gt 大于则为真

-ge 大于等于则为真

-lt 小于则为真

-le 小于等于则为真

if构造

Linux shell提供了循环和判定的构造,可以在shell脚本中使用

算术测试

结合if构造,它可以用于测试变量的数字值

串测试

test命令也可以用于字符串

= 等于则为真

!= 不相等则为真

-z 字符串 长度为零则为真

-n 字符串 长度不为零则为真



文件测试

test命令也可以用于检查文件的状态

-e 文件存在则为真

-r 文件存在并且可读则为真

-w 文件存在并且可写则为真

-x 文件存在并且可执行则为真

-s 文件存在并且至少有一个字符则为真

-d 文件存在并且为目录则为真

-f 文件存在并且为普通文件则为真

-c 文件存在并且为字符型文件则为真

-b 文件存在并且为块特殊文件则为真

-a并且 -o或者 !非

exit命令

用于终止shell脚本的执行并返回到$提示符下

case 。。。esac

shell脚本中使用的这个构造依据变量的值而执行一组特定指令

当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。

example3

迭代

while构造

while

do



done

只有条件为真的时候,才能执行do与done之间的命令

until构造

until循环构造的求值模式于while循环相反

until循环将继续执行直到求值的条件为真的时候

for构造

for variable_name in

do



done



for循环取一列值作为输入并对循环中每个值执行循环

break和contineu命令

同其他语言中的用法

example4

控制进程的执行

请求后台处理

用于请求后台进程的符号是 (&)

$ wc tempfile &

[1] 2082

$ vi newfile

检查后台进程

ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。

终止后台进程

可用kill,如下所示

kill 278

查看完成一个命令所花的时间

你可以使用time命令来查看一个命令从开始到结束所花的时间

time fine /etc –name “passwd” 2> /dev/null /dev/null表明忽略错误信息。



管道的介绍

垂直条(|)是管道字符

它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送

ls –l | more

用管道组合命令,功能强大

一般以#!/bin/sh开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了。
Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。
以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构)。
当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用sh ./file.sh方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他)。
整个shell脚本,其实就相当于你在终端输入的一系列命令,如果想在shell里做什么,就先想想在终端可以做什么吧,字符的的连接,就是直接用 "" 双引号,输出,变量定义无 $ 符号,但是使用时一定要加上 $ 符号。
"=" 赋值符号,两边一定不能有空格,这和其他语言有区别,尤其是你还有自己代码美观风格时特别注意,否则会报语法错误!
for 中的数组内容是以 " " 空格分隔,而非 "," 逗号分格。
条件判断 [ true ] 中括号 后面需要有一个空格,但是两个中括号之间不能有空格如 [[ true ]]。
while 条件判断可以用 () 括号,也可以用 [[ ]] 中括号。
如果用windows写shell,一定要注意换行符格式
而非
, 需要借助一些编辑器(如notepad++)更改换行符格式!

随便写了一个监控根磁盘空间的脚本。
code=`df -k / | grep -v Available | awk '{print $5}' | awk -F% '{print $1}'`
if [ $code -le 90 ]
then
echo "正常"
else
echo "不正常"
fi
exit 0


急急~!小学6年级的一个简单的英语小作文,请大家帮帮我,谢谢!
year.Children寻找自己的礼物,和年轻的发挥,而晚餐准备。下午约1点钟在下午,圣诞大餐是带来的。土耳其或鸡肉正迅速吃掉。儿童寻找他们的圣诞布丁在新硬币是隐藏在它。其余的一天充满了游戏和吃,直到所有的快乐圣诞hollidays即将结束。正好我是六年级,祝你考个好成绩!!

帮我写一篇大约120单词的英语作文!要求跟体育有关的就可以了。(不用...
again.In order to keep fit,you can keep a habbit of doing sports regularly.You'll benefit a lot from it.All in all,we'd better pick up our balls,and go out,to have an exciting game.Ready?Go?够简单吧!楼主不知满意吗?如果满意请按下采纳键,有什么问题随时问我哦!

谁能帮我写 一个关于 在4S店的英语对话 给分啊
(sale's man): Can I help you? sir.(Customer): I'd like a AUDI A6 2.0T with roof window and leather seats.S: all right, there are 4 colors for your choice. they are black, white, milky and silver.C: I like black one.S: OK. I'll prepare a set of contracts.Be...

谁能帮我写个三个人英文对话大概5到10分钟简单点的,谢谢啦
L:Hi,Tom.T:Hi,Lilly.This is my friend,Jack.Jack,this is my friend Lilly..J:Hello,Lilly,,nice to meet you.L:Hello,Jack,nice to meet you,too.Show we go to swim?J:That's a good idea!T:OK!Let's go !

关于自我介绍的佳句
我呢,长着一双炯炯有神的小眼睛,乌黑的头发竖立着,像个小刺猬。这和我的性格倒还挺吻合的。 4.帮我写几个自我介绍的好句 面试时,如何进行自我介绍 === 一段短短的自我介绍,其实是为了揭开更深入的面谈而设计的。一、两分钟的自我介绍,犹如商品广告,在有限的时间内,针对"客户"的需要,将自己最美好的一面...

帮我写一篇英语作文吧,初二水平的
seafood.I hope her having fun.翻译:玛丽病了上周,她多喝水,多休息,吃一些好的消化的东西。这一周至少她不再能玩电脑和长时间时间看电视。但她现在好了,就在本周,她要去旅游,她想去三亚,在大海里游泳。她将和她的父母和姐姐一起去,一起吃鱼和海鲜,我希望她玩得很开心。完全照要求写的。

【急】80分谁帮我写一篇作文啊???在线等!写的好的再加分!字不用太多...
《80分大作文精华》百度网盘资源免费下载 链接: https:\/\/pan.baidu.com\/s\/1eodC1K3mAcffX_De2IJerQ ?pwd=rbfy 提取码: rbfy 80分大作文精华|申论积累|热点9~医疗体制改革——健康中国|热点8~文化类|热点7~生态文明|热点6~公共管理|热点5~共享|热点4~创新驱动|热点3~三农——精准扶贫、乡村...

谁帮我写一段关于爵士乐的英文介绍
2014-08-02 谁能帮忙找一段爵士乐的英文介绍 2015-01-12 谁能帮我用英文介绍下爵士音乐 内容尽量简单点 最好几句话就O... 2008-05-18 jazz音乐英文介绍 2014-05-12 “爵士乐”的英文怎么写? 2015-08-31 he's a pirates 是爵士乐吗? 2007-09-11 谁帮我写一段关于爵士乐的英文介绍 2015-12-...

谁帮我写一篇英语作文‘我喜欢的一个体育明星’
Many people was sad.But now he is feeling well.He can join lots of contests.I like him best.Because he is very hard!I'm pround of him!i love him forever! 写完了,如果你觉得这篇不好,我在网上找了一篇Born in the 1980s, Liu Xiang is one of the best athletes in our ...

哪位可以帮我写一个有关中国文化的小英语文章
Water quality can affect the tea's taste. Ancient Chinese used spring water from mountains to make their teas. Rain, snow and water from rivers, lakes or streams are suitable for making tea. Tap water, which has too much chlorine, should not be used. Nowadays, purified water ...

贺兰县13090682141: 简单shell脚本 -
夷贤活力: 1) 如果你不判断命令执行成功与否,只是简单的串行操作,那么直接依次写这些命令即可:#!/bin/sh 命令1 sleep 2 命令2 sleep2 echo "y"2) 如果命令间有依赖关系,需要前一条命令执行成功才执行后面的命令,那么用&&符号连接即可:#!/bin/sh 命令1 && sleep 2 && 命令2 && sleep 2 && echo "y"

贺兰县13090682141: 帮忙编写一个小脚本 shell脚本 -
夷贤活力: 这个很简单,在shell脚本中参数最多有9个,它们的表示方式是这样的:$1,$2,$3…$9依次表示各个参数.你想要输入一个参数并显示出来,那么你可以这么来写:#!/bin/bashecho $1...

贺兰县13090682141: 编写一个简单的shell程序,判断系统中是否存在,如果存在将其删除 -
夷贤活力: 如果该文件不存在,则新建立该文件;如果该文件已经存在,则把键盘输入的文本附加到该 ... 通过检测变量$#的值判断命令行参数个数是否正确,如果正确则程序继续运行 .... 掌握SHELL编程的一般方法,能运用常用的SHELL命令编写一个简单的SHELL程序,并能 .... 从库文件中删除该记录,再把状态字段已改为out,以及已填入了借阅者和日期字段后 ...202.115.21.138/wlxt/ncourse/os/web/ziyuan/exp/... - 网页快照

贺兰县13090682141: 编写一个shell脚本
夷贤活力: 1、如果是要简单的shell脚本如下:#!/bin/bashfor((i=1;i<10;i++))do for((j=1;j<=i;j++)) do echo -ne "$j*$i=$((i*j))\t" done echo ""done这是一个打印九九乘法表的脚本,执行结果如下2、如果是要复杂的shell脚本,给你一个用shell脚本写成的俄罗斯方块的链接吧:http://www.hongchao666.com/wp-content/uploads/2017/12/%E8%BF%9E%E6%B6%88%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%971u2-1.zip游戏界面如下

贺兰县13090682141: 求助写一个 简单的 Linux Shell 脚本 -
夷贤活力: 1创建脚本 vim 1.sh2编辑内容#!/bin/bash a=hello echo "$a"3执行脚本 bash 1.sh 定义变量a=hello 输出变量$a,就是hello

贺兰县13090682141: 写一个简单的shell脚本,脚本运行时让CTRL+C无法中断的该shell脚本???
夷贤活力: 在shell脚本中用trap命令捕获SIGINT信号(ctrl+c产生的中断信号)就可以了 系统给出的SIGINT信号数字为2 2) SIGINT 所以,只要在脚本中要循环执行的内容前面加入以下语句即可: trap "" 2 或者直接写信号名称也可以: trap "" SIGINT 即,当收到信号SIGINT时忽略它,不做任何处理.

贺兰县13090682141: 简单的shell脚本编写请求 -
夷贤活力: 解答如下:#!/bin/bash umask 022 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin:/usr/local/mysql:/usr/local/dovecot/sbin:export PATH LC_ALL=C; export LC_ALL route | grep 172.16.0.0 if [ $? != 0 ];then route add -net 172.16....

贺兰县13090682141: 编写一个简单Shell脚本完成 -
夷贤活力: #!/bin/sh who >file more file---------------------- 其实可以同时实现查看who命令结果和重定向到文件,用双向重导向命令tee就行了:who|tee file

贺兰县13090682141: 编写一个shell脚本程序,把它的第一个位置参数及以后的各个参数指定的文件复制到第一个位置参数指定 -
夷贤活力: #!/bin/bash for ((i=2;i<=$#;i++)) docp ./$i $1/ done将参数2以及后面的所有文件拷贝到参数1的目录中.

贺兰县13090682141: 一个简单的功能shell脚本,怎么写 -
夷贤活力: #!/bin/bash echo "Hello,this is a sample^_^"

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网