1、编写shell脚本 ex1.sh,提示用户输入用户名,并判断此用户名是否存在。

(提示:利用read、grep和/etc/passwd)

#!/bin/bash

echo "请输入用户名"

read username   #相当于scanf

if grep $username /etc/passwd; then   #if的结尾要有fi
echo "存在"
else
echo "不存在"
fi

2、 编写shell脚本 ex2.sh,能将命令行参数相加并输出,如: ex2 1 3 8输出结果为12。

(提示:利用$@和循环结构)

#①可以把命令行的任意个数字相加

#!/bin/bash

sum=          #赋初值
for var in $@       #命令行的所有值 用以循环
do sum=$[$sum+$var]   #$相当于地址符
done
echo "$sum" #②可以把命令行三个数相加 #!/bin/bash CITY=SUM;
let SUM=$+$+$
echo "$SUM"

3、 编写shell脚本 ex3.sh,能将命令行参数所代表的文件统计行数,相加并输出结果,如: ex3 file1 file2 file3 ,统计三个文件的行数的总数。

(提示:利用$@和循环结构)

#!/bin/bash

sum=
nub=
for var in "$@"
do
nub=$(sed -n '$=' $var)   #读取文件中数据的行数
sum=$[$sum+$nub]
done
echo "$sum"

4、 编写shell脚本 ex4.sh,将当前目录下的.c文件移到命令行参数指定的目录下,并按文件大小排序,显示移动后指定目录的内容。

(提示:利用$1,sort和ls)

#!/bin/bash

echo "请输入地址:"

read addr       #scanf输入地址

mv ./*.c $addr     # ./表示当前目录 *.c表示所有一.c结尾的文件 mv移动操作

ls -S $addr #ls 显示当前目录下的文件夹 -S将文件大小排序

5、 编写shell脚本 ex5.sh,输出命令行参数中的最大数,如: ex2 1 3 8输出结果为8;如果命令行参数中有非数字参数则报错。

(提示:利用$@、循环结构和分支判断)

#!/bin/bash

max=$

for var in "$@"
do
if [[ $var != *[!-]* ]];then     #*X*匹配任何包含x的字符串(开头,中间或结尾),[!-]匹配任何非0-9的字符,合起来就是匹配没有0-9的字符
if [ $var -gt $max ];then     #比较var和max的大小 -gt表示">"
max=$var
fi
else
echo "含有其他字符"
exit         #结束
fi
done echo "$max"

五个简单的shell脚本的更多相关文章

  1. 一个简单的shell脚本

    一个简单的shell脚本 一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[KANO@kelvin ~]$ who2.KANO tt ...

  2. 《linux就该这么学》第五节课,shell脚本的各种语句!

    第四章shell语句 (据课本和虚拟机实验排版,借鉴请改动)               4.2:shell脚本   脚本包括:脚本声明,脚本注释,脚本内容和命令 例:#!/bin/bash      ...

  3. 如何在linux下编写一个简单的Shell脚本程序

    在了解了linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了 Shell既为一种命令解释解释工具,又是一种脚本编程语言 ...

  4. 小鸟初学Shell编程(二)编写简单的Shell脚本

    Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...

  5. 一个简单的Shell脚本(解决windows上文本在macos上乱码问题)

    之所以有这一篇文章,是因为之前我写过的一篇文章:“解决Mac上打开txt文件乱码问题”:传送门: https://www.cnblogs.com/chester-cs/p/11784079.html ...

  6. 简单的 Shell 脚本入门教程

    Shell脚本 运作方式与解释型语言相当,如果有语言基础,学起 Shell 脚本就非常容易,但是 Shell 与常见的语言不同,一些常见的函数在 Shell 中需要组合一些命令得以实现 工具推荐 Sh ...

  7. 简单的 shell 脚本 切分日志

    为避免日志过大,需要按天分割日志,定时计划任务脚本如下: /data/shell/backup_yesterday_nginx_log.sh declare logs_path="/data ...

  8. 我的一些简单的shell脚本实例

    1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read pa ...

  9. 自动化运维:(3)写一个简单的Shell脚本(案例)

    一.需求 1.test.sh 脚本执行时候需要添加参数才能执行 参数和功能详情如下: 参数 执行效果 start 启动中... stop 关闭中... restart 重启中... * 脚本帮助信息. ...

随机推荐

  1. [code]poj3349 Snowflake Snow Snowflakes

    哈希+挂链.可以用next数组挂链. ; type arr=..]of longint; var a,b:Array[..]of arr; next:Array[..]of longint; i,j, ...

  2. 关于IDEA的使用中,连接数据库console出现乱码的情况

    本人在连接数据库时也不算是出现乱码,因为乱码的解决方式百度都有,但是还是没有解决我当时遇到的问题, 首先排除navicat的问题,连接选择UTF-8的编码格式, 在Idea中使用debug调试,均可以 ...

  3. maven如何安装oracle驱动jdbc的jar包

    一.因为oracle驱动的压缩包在maven官网上并没有提供,所以需要自己去手动下载. 二.下载安装步骤如下: (1)第一步:找到你本地的oracle驱动包所在位置: (2)在cmd中打开jar包所在 ...

  4. .NetCore 3.1 MVC 发布Linux实操

    记录自己.net Core的学习,现在来发布到Linux系统 第一步:准备一台CentOS 7 X64服务器 .net core 3.1项目 第二步:准备服务器.net core环境 1.安装微软官方 ...

  5. thinkPHP渗透之经验决定成败

    如上图,目标就一个登陆框,最近 Thinkphp 程序很多,根据后台地址结构,猜测可能是 ThinkPHP ,随手输入 xxx 得到 thinkPHP 报错页面,确定目标程序和版本. 然后上 5.X ...

  6. F版本SpringCloud 5—Eureka集群和自我保护机制

    源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials 前言 上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用 ...

  7. GitHub也会断供:美国制裁地区帐号都受限,毫无预警,个人页面直接404

    请注意,GitHub也有断供危机. 如果你有GitHub私有库,是时候重新思考安全性,也是时候制定备份策略. 这不是杞人忧天,也不只温馨提示,而是已经发生的事实. 一位伊朗程序员,一觉醒来GitHub ...

  8. 干净直接安装+PS下载

    PS CS6 https://www.cr173.com/soft/247727.html 直接一键安装,很方便干净. 不要去华军软件下,广告浪费时间. 链接:https://pan.baidu.co ...

  9. 双剑合璧的开源项目Kitty-Cloud

    项目地址 https://github.com/yinjihuan/kitty-cloud 背景 做这个项目主要是想将个人的一些经验通过开源的形式进行输出,不一定能帮到所有人,有感兴趣的朋友可以关注学 ...

  10. 使用maven-pom进行依赖管理与自动构建

    使用maven-pom进行依赖管理与自动构建 span.kw { color: #007020; font-weight: bold; } /* Keyword */ code > span.d ...