Linux习题和答案

chmod +x linux_test.sh 命令给文件添加执行权限
运行脚本:./linux_test.sh

Linux习题和答案

# 检查用户输入的两个数是否相等,并显示相应的消息
read -p "请输入第一个数:" num1
read -p "请输入第二个数:" num2
if [ $num1 -eq $num2 ];thenecho '--equal--'
elseecho '--not equal --'
fi
}function test2 {
echo "---test2---"
# 遍历指定目录(eg: /home)中的所有文件,并显示每个文件的大小。
read -p "请输入检查路径:" path_dirs
for file in "$path_dirs"/*;doif [ -f $file ];thenecho "文件: $file,大小: $(stat -c%s "$file") 字节"elseecho "[ Check ]--- not file: $file"fi
done
}function test3 {
echo "---test3---"
# 通过ping命令检查给定的主机是否在线
read -p "请输入主机名或IP地址: " host
ping -c 1 "$host" &> /dev/null
if [ $? -eq 0 ];thenecho "主机 $host 在线。"
elseecho "主机 $host 不在线或无法访问。"
fi
}function test4 {
echo "---test4---"
# 求1到100的和
sum=0
for i in {1..100};dosum=$((sum+i))
done
echo "1到100的和为: $sum"
}function test5 {
echo "---test5---"
# 判断一个文件是否为目录
read -p "请输入文件名或目录: " filename
if [ -d $filename ];thenecho "$filename 是一个目录"
elseecho "$filename 不是一个目录"
fi
}function test6 {
echo "---test6---"
# 创建一个无限循环,每次循环打印当前的日期和时间
while true;doecho $(date)sleep 1
done
}function test7 {
echo "---test7---"
# 查找当前目录下,所有指定的文件并显示其大小
read -p "请输入指定末尾(eg:.log): " file_type
for file in *${file_type};doif [ -f "$file" ]; thenecho "$file 的大小为: $(stat -c%s "$file") 字节"fi
done
}function test8 {
echo "---test8---"
# 批量重命名文件
for file in *.txt
domv "$file" "prefix_$file"
done
}function test9 {
echo "---test9---"
# 清理旧日志文件
# 设置日志文件目录和保留天数
LOG_DIR="/var/log"
DAYS_TO_KEEP=7# 查找并删除超过指定天数的日志文件
find "$LOG_DIR" -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;# 输出清理结果
echo "清理了$LOG_DIR目录下超过$DAYS_TO_KEEP天的日志文件"
}function main {
if [ "$1" -eq 1 ];thentest1
elif [ "$1" -eq 2 ];thentest2
elif [ "$1" -eq 3 ];thentest3
elif [ "$1" -eq 4 ];thentest4
elif [ "$1" -eq 5 ];thentest5
elif [ "$1" -eq 6 ];thentest6
elif [ "$1" -eq 7 ];thentest7
elif [ "$1" -eq 8 ];thentest8
elif [ "$1" -eq 9 ];thentest9
elseecho "----------this-is-else---------"
fi
}main $1

附加辅以理解

一、Bash shell 的算术运算通常有六种方式:
1、使用 expr 外部程式
r=`expr $x + $y + 1` # 注:变量需要加$,运算符之间需要有空格
2、使用 $(( ))
r=$((x+y+1))  # 或者
r=$(($x+$y+1)) # 注:变量前$可加可不加,运算符之间空格可有可无
3、使用 $[ ]
r=$[x+y+1]  # 或者
r=$[$x+$y+1] # 注:变量前$可加可不加,运算符之间空格可有可无
4、使用let 命令
let r=x+y+1  # 或者
let "r=$x+$y+1" # 或者
let r=$x+$y+1  # 注:变量前$可加可不加,运算符之间空格可有可无,引号可有可无(除非有括号)
5、使用bc命令(支持浮点数)
echo $x + $y + 1 | bc   # 或者
echo "$x + $y + 1" | bc   # 注:变量前$必须加,运算符之间空格可有可无,引号可有可无(除非有括号)
6、使用awk命令(支持浮点数)
r=`echo $x $y | awk '{print $1+$2}'`
7、混合运算
x=4
y=5
# 方法1
r=`expr $x + \($y \* 2 / 3 % 4 \) + 1` # 注:变量需要加$,运算符之间需要有空格,*()需要用\转义# 方法2
r=$(($x + ($y*2/3%4) + 1))# 方法3
r=$[$x + ($y*2/3%4) + 1]# 方法4
let "r=$x + ($y*2/3%4) + 1"  # 注:有括号的运算,一定要加引号# 方法5
r=`echo "$x + ($y*2/3%4) + 1" | bc`   # 方法6
r=`echo $x $y | awk '{print $1 + ($2*2/3%4) + 1}'`  # 除法会产生浮点数

加法+
减法-
乘法*
除法/
取余%

# 浮点数运算
# 小数点后留5位
echo "scale=5;$x/$y" | bc
echo $x $y | awk '{printf "%.5f\n", $1/$2}'# 进制转化,10进制转化为16进制
echo $x | awk '{printf "%x\n", $1}'
二、echo操作命令
echo -n

表示不换行输出,默认换行

root@WL:/home# echo name
name
root@WL:/home# echo -n name
nameroot@WL:/home#

echo -e 输出转义字符,将转义后的内容输出到屏幕上

常见转义

\b:相当于退格键(backspace),删除前一个字符
\c:不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n; 但是当"\c"后面仍然存在字符时,“\c"后面的字符将不会被输出
\n:换行,被输出的字符从”\n"处开始另起一行
\v:换行,但是换行后的新行的开头位置连接着上一行的行尾
\f:和\n有类似
\t:表示插入tab,即横向制表符
\r:光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时"\r"前面的字符不会被覆盖
\:表示插入""本身

字符串字符截取

字符串字符截取
获取变量值字符长度
root@WL:/home# name="123456"
root@WL:/home# echo ${#name}
6

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/8907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MybatisPlus 构造器wrapper的使用与原理

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难,MyBatis动态Sql标签解析 Mybatis的CachingExecutor与二级缓存 使用MybatisPlus还是MyBaits ,开发者应该如何选择? My…

减小泛化误差为什么称“正则化(Regularization)”——深度学习Note

深度学习的一个重要方面是正则化(Regularization),Ian Goodfellow在《Deep Learning 》称正则化(Regularization)就是减小泛化误差。那么,为什么减小泛化误差称为正则化呢? 首先看正则化——Re…

Flask字符串变量拼接

在Flask中,我们可以在视图函数内部通过多种方式进行变量拼接。 1.使用 f-strings (Python 3.6) 字符串格式化: app.route(/user/<username>) def hello_user(username):age 25return f"My name is {username} and I am {age} years old."f-strings 是Python…

数据结构队列学习

引入 众说周知&#xff0c;在队列的题目中&#xff0c;队头指针(front)和队尾指针(rear)有两种指示方法。 &#xff08;1&#xff09;队头指针 ①指向队头元素 ②指向队头元素元素的前一个位置 &#xff08;2&#xff09;队尾指针 ①指向队尾元素 ②指向队尾元素的后一个位置 指…

第二证券午评:沪指涨近1%,地产、半导体等板块拉升,锂电池概念活跃

9日早盘&#xff0c;两市股指全线走高&#xff0c;沪指涨近1%&#xff0c;创业板指大涨近2%&#xff1b;北向资金大举出场扫货&#xff0c;半日净买入超100亿元。 到午间收盘&#xff0c;沪指涨0.91%报3156.96点&#xff0c;深成指涨1.63%&#xff0c;创业板指涨1.85%&#xf…

如何在Windows和Linux中杀死Python进程

在开发和运行Python脚本的过程中&#xff0c;有时我们需要强制结束正在运行的Python进程。这可能是因为脚本运行出现了不可预见的错误&#xff0c;或者我们需要停止一个长时间执行的任务。无论原因如何&#xff0c;了解如何在不同操作系统中正确、安全地终止Python进程都是一项…

MySQL变量的浮点数问题处理

新建连接&#xff0c;自带world数据库&#xff0c;里面自带city表格。 #MySQL变量的浮点数问题处理set dx3.14,dy3.25; select dxdy;# MySQL浮点数计算显示异常&#xff0c;会有很多00000的提示set resultdxdy;select result;结果&#xff1a;

软设之有限自动机

有限自动机能够识别的串:从初态出发可以到达终态且停留的状态 确定的有限自动机:当从一个状态面对一个输入符号的时候&#xff0c;所转换到是一个唯一确定费状态。 不确定的有限自动机:当一个状态面对一个输入符号的时候&#xff0c;它所转换到的可能不只一个状态&#xff0c…

c 双向链表

图片 #include <stdio.h> #include <stdlib.h> #include <string.h>int main(void){ struct film{char name[20];int id;struct film *pre; //前向指针struct film *next; //后向指针 };struct film *headNULL;struct film *ls,*lspre,*work;in…

mybatis 模糊查询的几种方式

1.concat函数和#{}拼接的方式 select * from sys_user where student_name like concat(%,#{studentName},%)2.%和${}拼接的方式 select * from sys_user where student_name like %${studentName}%3.concat函数和${}拼接的方式 select * from sys_user where student_name …

springboot045新闻推荐系统

推荐使用&#xff1a;谷歌浏览器 后台地址 http://localhost:8080/springboot49j18/admin/dist/index.html 管理员 abo 密码 abo 前台地址&#xff1a;http://localhost:8080/springboot49j18/front/index.html 在src\main\resources\application.yml中编辑 …

TC8002D(3W音频功放IC)是一颗带关断模式的音频功放IC

一、概述 TC8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时&#xff0c;负载(3Ω)上的平均功率为3W&#xff0c;且失真度不超过10%。而对于手提设备而言&#xff0c;当VDD作用于关断端时&#xff0c;TC8002D将会进入关断模式&#xff0c;此时的功耗极低&…

Leetcode—2079. 给植物浇水【中等】

2024每日刷题&#xff08;130&#xff09; Leetcode—2079. 给植物浇水 实现代码 class Solution { public:int wateringPlants(vector<int>& plants, int capacity) {int ans 0;int step 0;int cap capacity;bool flag false;for(int i 0; i < plants.siz…

对象复制工具Orika,快速实现两个java对象的属性赋值

一、maven依赖引入orika <dependency><groupId>ma.glasnost.orika</groupId><artifactId>orika-core</artifactId><version>1.5.4</version></dependency>二、Orika工具类 import io.swagger.annotations.ApiModel; import io…

武汉星起航:亚马逊五大促销类型全面解析,打造销售狂欢新篇章

在全球电商领域&#xff0c;亚马逊以其卓越的平台优势和创新的促销策略&#xff0c;为卖家和消费者搭建了一座互通的桥梁。今天&#xff0c;武汉星起航在这里解析亚马逊的五大促销类型&#xff0c;帮助卖家和消费者更好地把握商机&#xff0c;享受购物的乐趣。 一&#xff0e;…

sequlize中数据库字段计算当前时间和数据库日期相差天数 返回

在MySQL中&#xff0c;使用DATEDIFF函数可以计算两个日期之间的天数。但是&#xff0c;如果你正在使用Sequelize ORM&#xff0c;你可能需要将这个操作转换为Sequelize可以理解的查询。 以下是一个使用Sequelize来计算当前时间与表中某个日期字段之间天数差的例子&#xff1a;…

怎么做知识付费系统_打造专属用户的知识付费系统

在信息爆炸的时代&#xff0c;知识已经不再是遥不可及的奢侈品&#xff0c;而是每个人都可以触及的宝贵财富。然而&#xff0c;如何有效地获取、整理、分享并实现知识的价值最大化&#xff0c;成为了我们共同面临的挑战。今天&#xff0c;我将为您揭示一个全新的解决方案——搭…

欧盟关键基础设施网络安全防护体系政策法规研究(下)

文章目录 前言三、建立关基实体网络安全责任制并明晰具体职责和义务1、确定关基实体的风险评估职责和义务。2、规定关基实体承担网络安全管理责任、风险管理、事故通知等义务。3、规定关基中数字产品制造商、进货商和经销商等主体的不同义务。4、规定关基中高风险 AI 系统的网络…

实用的Chrome命令大全

Google Chrome 是一款广泛使用的网络浏览器&#xff0c;它支持一系列特殊的命令&#xff0c;这些命令可以通过在地址栏输入特定的关键字来实现。这些命令不仅可以帮助用户快速访问Chrome的内部页面&#xff0c;还可以用于调试和优化网站性能。以下是一些实用的Chrome命令的详细…

24 | MySQL是怎么保证主备一致的?

MySQL 主备的基本原理 内部流程 备库 B 跟主库 A 之间维持了一个长连接。主库 A 内部有一个线程,专门用于服务备库 B 的这个长连接。一个事务日志同步的完整过程是这样的: 在备库 B 上通过 change master 命令,设置主库 A 的 IP、端口、用户名、密码,以及要从哪个位置开始…