shell编写基础练习

本文介绍了多个基础的Shell脚本编写练习,包括根据时间显示欢迎信息、检查命令行参数的目录、更改文件权限、创建目录及文件、查找特定文件、删除零字节文件、显示文件内容范围、批量转换文件名大小写以及判断命令行参数是否包含双引号等。通过这些练习,读者可以提升Shell脚本编写技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell Script练习
1.设置和显示变量,编写一个名为SayHello的Script,放置于你的启动文件中,当你登陆进系统时能根据当时系统时间显示一条欢迎信息,比如:
Good Morning
Good Afternoon
Good Evening

1、Script:
#!/bin/bash
#if statement aplication
hh=date '+%H'
date
if [ $hh -gt 12 -a $hh -le 18 ]
then
echo “Good afternoon!”
elif [ $hh -gt 0 -a $hh -le 12 ]
then
echo “Good moring!”
else
echo “Good evening!”
fi
#end

2.编写一个script能接受一个目录作为命令行参数,如果传入的参数个数多于或少于1,显示一个使用信息提示,比如:“usage: program directory”。如果这个参数不是一个目录,显示一个错误信息。如果是一个目录,显示出此目录下的所有文件,然后再显示出最大的五个文件。
2、Script:
#!/bin/bash
read -t 30 -p “请输入:” dirr
if [ ! KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲ -ne 1 ] then …dirr" ];
then
ls $dirr
else
echo “Wrong!”
exit 1
fi
fi
#end

3.编写一个script, 创建目录/tmp/scripts, 切换工作目录到此目录中,复制你home下的某个目录到当前目录,并重命名为test,将test里的文件及其下的目录的其他用户权限改为没有任何权限。
3、Script:
#!/bin/bash
#name:cp.bash
mkdir -v /tmp/scripts
cd /tmp/scripts
cp -r /home/scripts_home ./test
chmod -R o=— ./test

4.编写一个script, 显示当前系统日期和时间,而后创建目录/tmp/lstest, 切换工作目录至/tmp/lstest, 创建目录a1d,b56e,6test, 创建空文件xy,x2y,732, 列出当前目录下以a,x或者6开头的文件或目录, 列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录。
4、Script:
#!/bin/bash
#name:date.bash
date
mkdir -pv /tmp/lstest
cd /tmp/lstest
mkdir a1d b56e 6test
touch xy x2y 732
ls [ax6]*
ls [[:alpha:]][[:digit:]]*
#end

5.编写一个script查看根目录下是否存在某个文件。
5、Script:
#name FileE.bash
read -p “Please input :” file1
if [ -f “$file1” ]
then
echo “文件存在”
else
echo “文件不存在”
fi
#end

6.编写一个script删除当前目录下大小为0的文件。
6、Script:
#!/bin/bash
#name:Delete.bash
for file in ls|tr " " "?"
do
if [ ! -s “file"−a!−d"file" -a ! -d "file"a!d"file” ]; then
rm -f “$file”
fi
done
#end

7.编写一个script显示某个文件中从指定行数到下一个指定行数的内容。例如:
$Q2 5 5 myfile
即程序Q2显示出文件myfile中从第5行开始,接下来5行的内容。

7、Script:
#!/bin/bash
#name:RawD
echo “此文件内容:”
cat 3.txt
read -t 30 -p “请输入初始行:” start
read -t 30 -p “请输入末尾行:” end1
read -t 30 -p “请输入文件名:” filename
cat 3.txt| head -n end1∣tail−n+end1 | tail -n +end1tailn+start
#end

8.编写一个script把某个目录下的所有文件名小写的改为大写。
8、Script:
#!/bin/bash
#name:AatT.bash
read -t 30 -p “请输入:” dirr
cd dirrforfilein∗[A−Z]∗;domv"dirr for file in *[A-Z]*; do mv "dirrforfilein[AZ];domv"file" “$(echo $file | tr ‘[A-Z]’ ‘[a-z]’)”
done
echo “Transfer finished!”
#end

9.编写一个script判断命令行参数($1)是否包含“”,如果没有包含“”,在($1)后面加上,反之则显示信息Symbol is not required
9、Script:
#!/bin/bash
echo “File Name: $0”
echo “First Parameter : $1”
echo “First Parameter : $2”
echo “Quoted Values: $@”
echo “Quoted Values: $"
echo "Total Number of Parameters : KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲" result=(echo $1 | grep "
”)
s1=1if[["1 if [[ "1if[["result" != “” ]]
then
echo “包含,Symbol is not required”
else
echo ${s1}"*"
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值