Linux习题和答案

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

Linux习题和答案

# 检查用户输入的两个数是否相等,并显示相应的消息
read -p "请输入第一个数:" num1
read -p "请输入第二个数:" num2
if [ $num1 -eq $num2 ];then
    echo '--equal--'
else
    echo '--not equal --'
fi
}

function test2 {
echo "---test2---"
# 遍历指定目录(eg: /home)中的所有文件,并显示每个文件的大小。
read -p "请输入检查路径:" path_dirs
for file in "$path_dirs"/*;do
    if [ -f $file ];then
        echo "文件: $file,大小: $(stat -c%s "$file") 字节"
    else
        echo "[ Check ]--- not file: $file"
    fi
done
}

function test3 {
echo "---test3---"
# 通过ping命令检查给定的主机是否在线
read -p "请输入主机名或IP地址: " host
ping -c 1 "$host" &> /dev/null
if [ $? -eq 0 ];then
    echo "主机 $host 在线。"
else
    echo "主机 $host 不在线或无法访问。"
fi
}

function test4 {
echo "---test4---"
# 求1到100的和
sum=0
for i in {1..100};do
    sum=$((sum+i))
done
echo "1到100的和为: $sum"
}


function test5 {
echo "---test5---"
# 判断一个文件是否为目录
read -p "请输入文件名或目录: " filename
if [ -d $filename ];then
    echo "$filename 是一个目录"
else
    echo "$filename 不是一个目录"
fi
}

function test6 {
echo "---test6---"
# 创建一个无限循环,每次循环打印当前的日期和时间
while true;do
    echo $(date)
    sleep 1
done
}

function test7 {
echo "---test7---"
# 查找当前目录下,所有指定的文件并显示其大小
read -p "请输入指定末尾(eg:.log): " file_type
for file in *${file_type};do
    if [ -f "$file" ]; then
        echo "$file 的大小为: $(stat -c%s "$file") 字节"
    fi
done
}

function test8 {
echo "---test8---"
# 批量重命名文件
for file in *.txt
do
    mv "$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 ];then
    test1
elif [ "$1" -eq 2 ];then
    test2
elif [ "$1" -eq 3 ];then
    test3
elif [ "$1" -eq 4 ];then
    test4
elif [ "$1" -eq 5 ];then
    test5
elif [ "$1" -eq 6 ];then
    test6
elif [ "$1" -eq 7 ];then
    test7
elif [ "$1" -eq 8 ];then
    test8
elif [ "$1" -eq 9 ];then
    test9
else
    echo "----------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:换页符
\t:表示插入tab,即横向制表符
\r:光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时"\r"前面的字符不会被覆盖
\:表示插入""本身

字符串字符截取

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FANUC机器人单轴零点标定时提示无法执行零点标定,由于重力补偿已启用,所有机器人轴的脉冲计数必须有效

FANUC机器人单轴零点标定时提示无法执行零点标定,由于重力补偿已启用,所有机器人轴的脉冲计数必须有效 首先,机器人由于长时间断电未使用,6个轴的编码器数据全部丢失,上电后报警SRVO-062, 有关SRVO-062故障报警的相关内容可参考以下链接: FANUC机器人SRVO-062报警原因分…

windows11如何设置无线网卡不休眠

为了在家里用向日葵等软件连接上公司的台式电脑,发现尴尬的事情:在家里连接时提示公司的电脑下线了。经排查,发现长时间不用时,公司的台式电脑的无线网卡休眠了。 windows11可以用下面的步骤设置无线网卡不休眠: 1. 设…

Sybase数据库分页查询(指定起始位置)

针对单表数据量过大的场景,分页查询必不可少。针对sybase数据库分页查询的案例全网稀少,特别是指定起始页的分页查询实现。 本文依靠实际开发场景,特此总结Sybase数据库分页查询(指定起始位置)。 目录 一、 SQL实现分…

SQL统计语句记录

1.达梦数据库 统计指定单位的12个月份的业务数据 SELECT a.DEPT_ID, b.dept_name, a.USER_NAME, count(a.dept_id) as count, sum(case when to_char(a.CREATE_TIME,yyyy-mm) 2023-01 THEN 1 else 0 end) as one,sum(case when to_char(a.CREATE_TIME,yyyy-mm) 2023-02 T…

JavaScript手写专题——图片懒加载、滚动节流、防抖手写

图片懒加载场景:在一些图片量比较大的网站(比如电商网站首页,或者团购网站、小游戏首页等),如果我们尝试在用户打开页面的时候,就把所有的图片资源加载完毕,那么很可能会造成白屏、卡顿等现象&a…

内网安全-隧道技术SSHDNSICMPSMB上线通讯LinuxMac 简单总结

第126天:内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac_内网安全-隧道技术_ssh_dns_icmp_smb_上线通讯linux_mac-CSDN博客 内网渗透—隧道技术_隧道技术csdn-CSDN博客 #SMB 隧道&通讯&上线 判断:445 通讯 上…

Azure Windows2012升级2016

Azure Windows2012升级2016 在自己电脑配置Azure PowerShell前置条件PowerShell 登录到 Azure Azure 中运行 Windows Server 的 VM 的就地升级前置条件,生成一块OS磁盘将生成的OS磁盘附件到需升级的服务器执行就地升级到 Windows Server 2016 升级后配置故障恢复 在…

一觉醒来 AI科技圈发生的大小事儿 05月09日

📳AlphaFold 3 重磅问世,全面预测蛋白质与所有生命分子相互作用及结构,准确性远超以往水平 Google DeepMind发布了AlphaFold3模型,能够联合预测蛋白质、核酸、小分子等复合物结构,准确性显著提高,对跨生物…

代码随想录算法训练营第36期DAY22

DAY22 654最大二叉树 自己做的时候忽略了:nums.length>1的题给条件。所以每次递归都要判断是否size()>1,不要空的。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig…

让数据更「高效」一点!IvorySQL在Neon平台上的迅速部署和灵活应用

IvorySQL本身就是一个100%兼容PostgreSQL最新内核的开源数据库系统,而Neon Autoscaling Platform通常支持多种数据库和应用程序。将IvorySQL集成到该平台后,可以进一步增强与其他系统和应用程序的兼容性,同时更全面的体验IvorySQL的Oracle兼容…

深入探究 Spring Boot Starter:从概念到实践

序言 Spring Boot Starter 是 Spring Boot 生态系统中的一个核心概念,它为开发者提供了一种便捷的方式来捆绑和配置应用程序所需的依赖项。本文将深入探讨 Spring Boot Starter 的概念、原理以及如何创建自定义的 Starter。 一、什么是 Spring Boot Starter Spri…

docker 安装elasticsearch8.X

docker 安装elasticsearch8.X 安装elasticsearch8.X前言安装elasticsearch安装elasticsearch-analysis-ik安装kibana 安装elasticsearch8.X 前言 由于需要安装elasticsearch、IK分词插件、kibana。所以需要保持这三者的版本一致性。 elasticsearch 8.12.2 kibana 8.12.2 ela…

科沃斯梦碎“扫地茅”,钱东奇跌落“风口”

昔日“扫地茅“不香了,科沃斯跌落神坛。 4月27日,科沃斯发布2023年报显示:2023年,科沃斯的营收为155.02亿元,同比增加1.16%;同期,净利为6.10亿元,同比减少63.96%。科沃斯的经营业绩…

Mysql数据在磁盘上的存储结构

一. 前言 一行数据的存储格式大致如下所示: 变长字段的长度列表,null值列表,数据头,column01的值,column02的值,column0n的值… 二. 变长字段 在MySQL里有一些字段的长度是变长的,是不固定的,…

可视化-实验五-Pyecharts工具包的使用及文本数据可视化

1.2.1 pyecharts的数据类型以及新的数据导入逻辑 由于pyecharts背后封装的js库,会涉及到数据类型转化。它暂时要求输入数据必须是python的基础数据类型,比如字符串,列表,字典,而不能是序列这样的数据类型。因此序列输入…

RockChip Android13 添加/删除ListPreference方法

概述: 本章将讲述在Android添加或删除ListPreference的几种方法,并以EthernetSettingsActivity为例,添加/删除一项ListPreference: 默认效果图: 添加后效果图: 方法一: 1、全部添加xml 在Activity类中使用addPreferencesFromResource()方法解析XML文件并添加Prefere…

Node.js安装与配置环境 v20.13.1(LTS)

1 下载 Node.js — Run JavaScript Everywhere LTS -- long-term support,长期维护版本 如果要下载其他版本在download里选择下载 2 安装 一路点击next,默认安装路径C:\Program Files\nodejs 3 环境变量配置 1)Path环境变量增加nodejs安装…

艾体宝方案 | 加密USB金融解决方案

在现代金融行业中,保护敏感数据和合规性已成为至关重要的任务。为了帮助金融公司应对移动性风险和合规挑战,我们提供了一种高效的加密USB解决方案。 一、为什么金融公司需要加密USB解决方案 1、降低移动性风险 金融服务公司正在迅速过渡到一种模式&a…

将本地托管模型与 Elastic AI Assistant 结合使用的好处

作者:来自 Elastic James Spiteri, Dhrumil Patel 当今公共部门组织利用生成式人工智能解决安全挑战的一种方式。 凭借其筛选大量数据以发现异常模式的能力,生成式人工智能现在在帮助团队保护其组织免受网络威胁方面发挥着关键作用。 它还可以帮助安全专…

短信平台群发服务有什么优点

短信平台群发服务有什么优点 提高营销效率 短信平台群发服务利用自动化技术,可以帮助企业迅速向大量潜在客户营销信息。相比传统的逐一方式,群发服务可以同时大批目标客户,大大提高了营销效率。企业可以轻松地在短时间内覆盖更多的潜在客户&…
最新文章