linux shell习题
课件地址:https://wenku.baidu.com/view/bac2ff10f18583d0496459f3.html
1.测试环境变量:HOME,PWD,IFS等
2.测试位置变量:$$,$#,$0,$1,$2,$3,$@,$*,再测试当IFS=‘’和取消IFS时$@和$*的输出
3.使用if和case对“是否选修了Linux课程”的问题做出回答
4.列出当前目录下包含sh文件的详细信息
5.列出1~50之间的奇数
6.计算1+2+…+n
7.统计/etc目录下的文件数和目录数
8.设计一函数使能只列指定目录下的子目录
9.设计一函数能实现向文件追加记录的功能(记录由若干变量构成)
10.监控某个用户是否登陆
11将指定目录下的.txt文件成批量地改名为 .doc
1~2
#!/bin/bash
endl() {
echo -e "=======end===============\n"
} echo $HOME; endl # => /c/Users/mdzz
echo $PWD; endl # => /c/Users/mdzz/Desktop/2018linux
echo $IFS; endl
echo $$,$#,$,$,$,$,$@,$*; endl # => ,,exercise.sh,,,,,
2
#!/bin/bash
endl() {
echo -e "=======end===============\n"
} list="we:are:champion"
ifs_old=$IFS
IFS=$':'
for val in $list
do
echo "n=$val"
done
IFS=$ifs_old; endl ifs_old=$IFS
IFS=''
echo $@,$*
IFS=$ifs_old
echo $@,$*; endl
3
#!/bin/sh
echo "是否选修了Linux课程"
read yesorno
if [ "$yesorno" = "yes" ]
then
echo "Good."
elif [ "$yesorno" = "no" ]; then
echo "what a pity!"
else
echo "Sorry, $yesorno not recognized. Enter yes or no"
exit
fi
exit
4~7
#!/bin/bash
#####脚本一######
#输入绝对路径,查找包含.sh结尾的文件及目录输出到file.tmp里
# read -p "请输入要查询的目录:" DIR
# find ${DIR} -name "*.sh" > file.tmp
#!/bin/bash
#####脚本二#####
#输入要查询的目录,如果文件不存在创建文件,如果存在退出
# read -p "请输入要查询的目录:" DIR
# read -p "请输入要创建的文件:" FILENAME
# if [ -d $DIR ];then
# if [ ! -f $FILENAME ];then
# touch $FILENAME
# echo "${FILENAME} 创建成功"
# else
# echo "${FILENAME} 文件已经存在"
# exit
# fi
# else
# echo "指定的目录不存在!"
# fi DIR=`ls -l`
# echo $DIR
ls -l *.sh echo {....} # 罗列1 ~50的奇数 # 求 +++..+n
read -p "请输入数字n;" N
sum=
for ((i=; i<=$N; i++));do
sum=$(($i+$sum))
done
echo $sum #统计当前目录文件数和目录数
FILE_NUM=`find ./ -type f |wc -l` #统计文件数
DIR_NUM=`find ./ -type d |wc -l` #统计目录数
echo $FILE_NUM
echo $DIR_NUM
11
#!/bin/bash
for file in `ls | grep .txt`
do
NEW_FILE=`echo $file`
# ${string/substring/replacement} # substring可以是正则表达式
NEW_FILE=${NEW_FILE/.txt/.doc}
mv $file $NEW_FILE
done
linux shell习题的更多相关文章
- linux shell习题训练
shell习题训练 求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2 ...
- shell习题训练
shell习题训练 求2个数之和 计算1-100的和 将一目录下所有的文件的扩展名改为bak 编译当前目录下的所有.c文件: 打印root可以使用可执行文件数,处理结果: root's bins: 2 ...
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 流程控制语句
* 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...
- Linux Shell 截取字符串
Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
随机推荐
- mysql 1,2,3 关联查询出数字代表的具体意思
建表 TEST1 CREATE TABLE `TEST1` (`ID` int(11) NOT NULL,`IID` varchar(200) DEFAULT NULL,PRIMARY KEY (`I ...
- 查看CPU信息
基础知识 示例: 开发机器是1个物理CPU,4核8线程,Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 基础 i3:2核模拟4线程,无睿频 i5:4核模拟4线程,有睿频 ...
- WebSocket.之.基础入门-建立连接
WebSocket.之.基础入门-建立连接 1. 使用开发工具(STS.Eclipse等)创建web项目.如下图所示,啥东西都没有.一个新的web项目. 2. 创建java类.index.jsp页面. ...
- <3>Cocos Creator编辑器基础
Cocos Creator编辑器界面主要窗口包含如下: * 资源管理器窗口 * 场景编辑器窗口 * 层级管理器窗口 * 属性检查器窗口 * 上方功能按钮 * 偏好设置 * 串口输出 * 预览和构建 1 ...
- 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django
1,Ubuntu更新系统 sudo apt-get update sudo apt-get upgrade 2,安装apache,mod_wsgi,Django sudo apt-get instal ...
- Yii2开发小技巧
工作中或多或少会用到的关于 Yii2 的小技巧的一个总结,包括model.controller.view或者配置文件的一些写法. 模型相关 获取查询SQL $query = User::find()- ...
- Maven的配置指南
Maven的配置指南 配置Maven Maven配置发生在3个级别: 项目 - 大多数静态配置发生在pom.xml中 安装 - 这是Maven安装时发生的一次性的配置过程 用户 - 这是Maven提 ...
- JavaScript--元素对象方法setAttribute() 和appendChild()
appendChild() 方法可向节点的子节点列表的末尾添加新的子节点 setAttribute() 方法创建或改变某个新属性.如果指定属性已经存在,则只设置该值 <!DOCTYPE html ...
- 【2017-02-28】C# 冒泡排序
冒泡排序 重复地走访过要排序的数列,一次比较两个元素的大小,如果他们的顺序错误就把他们交换过来 通过两个For循环嵌套来实现 思路——以从小到大为例 第一个for循环抽取第一个数和第二个数进行比较,如 ...
- windows10 安装 mysql8.0.12 详解
[1]下载安装包 官网下载地址:https://downloads.mysql.com/archives/community/ 如下图所示: 下载完成,安装包为mysql-8.0.12-winx64. ...