bash编程练习脚本
1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);
分别这两类用户的个数;通过字符串比较来实现;
通过while循环遍历来实现。
while循环的特殊用法(遍历文件的行):
while read VARIABLE; do
循环体;
done < /PATH/FROM/SOMEFILE
依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将基赋值给VARIABLE变量;
[root@localhosthome]# vim login.sh
#!/bin/bash
#
#Author=dylan
login_user=0
nologin_user=0
while read line; do
usershell=$(echo$line | cut -d: -f7)
if[ "$usershell" == "/sbin/nologin" ];then
letnologin_user++
else
letlogin_user++
fi
done < /etc/passwd
echo "Number of userslogin:$login_user"
echo "Number of usersnologin:$nologin_user"
代码如下:
执行如下:
2、写一个脚本
(1)获取当前主机的主机名,保存于hostname变量中;
(2)判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
(3)否则,则显示当前主机名;
vim hostnametest.sh
#!/bin/bash
#
#Author=dylan
hostname=$(uname -n)
if [ "$hostname" =="localhost" ];then
hostnamewww.magedu.com
else
echo$hostname
fi
代码如下:
echo"Plesase supply a disk path:Usage /dev/[s|h]d[a-z]"
(1)如果参数1为quit,则显示退出脚本,并执行正常退出;
[root@localhost home]# vim arg.sh
传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;
(1)如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;
(2)如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;
(3)如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;
tar-zcvf /backups/etc-`date +"%Y%m%d"`.tar.gz /etc &> /dev/null
tar-jcvf /backups/etc-`date +"%Y%m%d"`.tar.bz /etc &> /dev/null
tar-Jcvf /backups/etc-`date +"%Y%m%d"`.tar.xz /etc &> /dev/null
[root@localhost home]# vim filetest.sh
echo"It is a normal file that can be accessed normally"
echo"It is a directory file,then you can use the cd command"
echo"It is a aymbolic link file,the description ia an access path"
(1)如果主机名为空或为localhost,或为"(none)",则将其命名为mail.magedu.com;
[root@localhost home]# vim nametest.sh
if [ -z "$name" -o "$name" == "localhost" -o"$name" == "none" ];then
echo"hostname is mail.magedu.com"
(2)如果用户的id号大于0且小于500, 则显示其为系统用户;
[root@localhost home]# cat idtest.sh
转载于:https://blog.51cto.com/rylan/1922679
bash编程练习脚本相关推荐
- linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)
linux下Bash编程until语句及格式化硬盘分区等编写脚本(十) 1.循环语句结构总结 1.1.while语句当条件满足时,进入循环语句 while 条件; do 语句 done 1.2.unt ...
- linux内核与bash脚本接囗,Bash脚本编程之脚本基础和bash配置文件
脚本基础 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成机器可运行的二进制程序文件后,方可运行.例如C语言和Java语言. 解释运行:需要一个 ...
- bash 运行程序 下一步_怎样用 Bash 编程:语法和工具
让我们通过本系列文章来学习基本的 Bash 编程语法和工具,以及如何使用变量和控制运算符,这是三篇中的第一篇. -- David Both(作者) Shell 是操作系统的命令解释器,其中 Bash ...
- Linux之bash编程基本语法
在Linux运维工作中,我们为了提高工作效率通常会用bash编写脚本来完成某工作. 今天就来为大家介绍bash的一些常见的基本语法. 在讲解bash语法之前首先介绍一下bash. bash环境主要是由 ...
- 第五课 vim基本用法、bash编程初步和for循环
1.vim的基本用法 2.vim的高级用法 3.bash编程初步 4.bash算术运算.位置参数和read 一.文本编辑工具 vi vim vimtutor在线帮组文档 全屏编辑器(nano, ...
- bash编程初体验之if
bash编程初体验之if read if case 概述 在本篇文章中,我们将介绍bash编程中有关if语句的简单用法,.如此,如果条件为真,if会执行一种指令,如果条件为假,if会选择执行另一种指令 ...
- shell编程,脚本语言
Cut 按照字符提取 head -2 1.txt | cut -c 5 指定分隔符 head -2 1.txt | cut -d ':' -f 1,2 Sort 文本排序 sort 文件名 文本排序反 ...
- redhat linux之bash 编程
bash编程: bash进程:解释器 type shell脚本: 第一行,顶格: shebang #!/bin/bash ...
- bash编程(马哥)
bash基础特性: 命令行展开:~,{} 命令别名:alias,unalias 命令历史:history 命令和路径补全:$PATH glob通配符:*,?,[],[^], 快捷键:Ctrl+{a,e ...
最新文章
- 关于C#中timer类 在C#里关于定时器类就有3个
- JAVA中String与StringBuffer的区别
- 使用Kubectl部署应用
- linux history文件路径,Linux、Unix常用命令(文件和目录相关)
- 如何使antd中table表格不换行
- python的六大数据类型中可以改变_在python中更改数组的数据类型
- Qt工作笔记-QHash与QMap查找速度粗略比较实战
- Java 高级算法——数组中查询重复的数字之二
- Fineui 添加打印控件
- 32位win10服务器系统,微软将停止支持32位Win10系统 32位Win10系统什么时候停止支持...
- python爬取微信公众号network_python如何爬取搜狗微信公众号文章永久链接的思路解析...
- 爬虫 第二讲 urllib模块和requests模块
- 电视盒子做文件共享服务器,【当贝市场】智能电视盒子和PC电脑文件共享教程...
- Python zip zip_longest
- 知数堂MySQL DBA在线培训第八期招生中
- canvas.toDataURL() gives “Security Error” in IE 11
- GPU加速(一)CUDA C编程及GPU基本知识
- 时间序列分析-如何写出ARIMA模型的公式
- Perseus(擎天):统一深度学习分布式通信框架
- 数据时代做好知识主人-自创文章
热门文章
- 利用python将一段DNA转录成RNA
- python实现对《白夜行》的词频统计
- 智能AI机器人,电商客服为何对它“情有独钟”?
- 自动六向梯形矫正是怎么弄,当贝X3六向自动梯形矫正快速方正告诉你
- Python控制流程语句实现各种小功能(用户身份认证、百分制转换等级制、英寸与厘米的转换、三角形的周长和面积、九九乘法表……)
- 无刷电机控制——硬件部分调试记录
- IE11打开网页会有彩色方块出现
- 超微主板BIOS Product key IPMI LICENSE
- Android 方向传感器与磁力计和加速度传感器之间的关系
- [JAVA毕业设计]html5大众汽车网站源码获取和系统演示