Linux的一些实例

1.编写脚本,让用户输入firstname和lastname,最后在屏幕上显示your full name is:

cpp 复制代码
#!/bin/bash
read -p "please input firstname:" var1 
read -p "please input lastname:" var2
echo "your full name is:$var1$var2"

运行结果:

2.编写脚本,查找当前路径下某文件是否存在,若存在,则将其权限设置为用户主可读可写,其余用用户无任何权限。否则返回无此文件的信息。

cpp 复制代码
#!/bin/bash
read -p "input a filename:" var
if test -e $var
then chmod 0600 $var
else
echo "no namefile"
fi
 

3.编写脚本文件leapyear.sh。脚本功能为:判断给定的某一年是否是闰年。

cpp 复制代码
#!/bin/bash
read -p "input one year:" var
if test $((var % 4)) -eq 0 && test $((var % 100)) -ne 0 || test $((var % 40)) -eq 0
then
    echo "$var是闰年"
else
    echo "$var不是闰年"
fi

4.打印给定行数的*号。第一行打印1个,第二行打印2个,等等。行数由用户在命令行上输入。

cpp 复制代码
#!/bin/bash
read -p "请输入行数" var
for((i=0;i<var;i++));
do
    for((j=0;j<=i;j++));
    do
    echo -e "*\c"
done
echo
done
    

5.编写脚本文件sum.sh。脚本功能为:计算从1加到100的和并返回结果。

cpp 复制代码
#!/bin/bash
for((i=1;i<=100;i++))
do
    ((sum=$(expr $sum+$i)))
done
echo $sum

6.编写shell脚本, 将第一个参数指定的内容 copy 到第二个参数指定地点。

若第一个参数是目录, 自动添加-r 选项(即把目录下的所有内容都 copy 过去);

若第一个参数是普通文件,则将其 copy 到指定地点;

若第一个参数指定的文件或目录不存在,则报错;

若第二个参数指定的文件或目录已经存在,则提示是否替换,若选择 yes,则先删除原来的文件或目录, 然后再执行 copy 操作, 否则放弃。

cpp 复制代码
#!/bin/bash
read -p "请输入两个目录或文件参数:" var1 var2
if test -d $var1
then
    cp -r "$var1" "$var2"
else 
    if test -f $var1
    then

        if ! test -e $var2 
        then
            echo "erro"
        else 
            read -p "是否替换?" a
            if test $a="yes"
            then
                read -p "指定目录:" var3 
                rm -rf "$var2"
                cp -r "$var1" "$var3"
                echo "替换成功"
            else
                echo "放弃替换"
            fi
        fi
    fi
fi
相关推荐
大树887 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush48 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5208 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz8 小时前
Maven依赖冲突
java·服务器·maven
不会C语言的男孩9 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈9 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟10 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫11 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦11 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw