嵌入式linuxshell程序设计实验

Linux shell程序分支语句设计 

编写一个shell程序,使用分支语句完成如下功能:输入一个文件名,如果文件名为空则提示输入的文件为空,否则判断 文件是否存在,不存在则显示提示信息,如果文件存在则判断文件是 普通文件还是目录,或是其他文件,给出相应的判断信息

代码展示

#!/bin/bashread -p "请输入文件名:" filenameif [ -z "$filename" ]; then    echo "输入的文件名为空"else    if [ ! -e "$filename" ]; then        echo "文件不存在"    else        if [ -f "$filename" ]; then            echo "这是一个普通文件"        elif [ -d "$filename" ]; then            echo "这是一个目录"        else            echo "这是其他类型的文件"        fi    fifi

代码解释

用于接受用户输入的文件名,并根据输入的文件名进行一系列判断。以下是对代码的逐行解释:#!/bin/bash: 这是一个Shebang(#!)行,指定了脚本要使用的解释器,这里是Bash。read -p "请输入文件名:" filename: 这行代码提示用户输入文件名,并将用户输入的值存储在filename变量中。if [ -z "$filename" ]; then: 这是一个if语句,判断用户是否输入了文件名。-z选项用于检查变量是否为空。echo "输入的文件名为空": 如果文件名为空,将输出提示信息。else: 如果文件名不为空,执行下面的代码块。if [ ! -e "$filename" ]; then: 这是嵌套的if语句,检查文件是否存在。-e选项用于检查文件是否存在。echo "文件不存在": 如果文件不存在,将输出提示信息。else: 如果文件存在,执行下面的代码块。if [ -f "$filename" ]; then: 这是另一个嵌套的if语句,检查文件是否是普通文件。-f选项用于检查文件是否是普通文件。echo "这是一个普通文件": 如果是普通文件,输出相应的信息。elif [ -d "$filename" ]; then: 这是elif语句,检查文件是否是目录。-d选项用于检查文件是否是目录。echo "这是一个目录": 如果是目录,输出相应的信息。else: 如果既不是普通文件也不是目录,执行下面的代码块。echo "这是其他类型的文件": 输出文件为其他类型的信息。

Linux shell程序循环语句设计 

编写一个shell程序,使用循环语句完成如下功能: 1创建目录和文件:在/tmp目录创建9个目录名为:dir1, dir2, …, dir9。然后在每个目录下分别新建9个文本文件,文件名为:目录名 _file1,目录名_file2, …,目录名_file9;并设置每个文件的权限如下:文件所有者:rwx;同组用户:r+x;其他用户:r+x 

2 等待键盘输入一个数字,范围为1~9,重命名该级目录(假设输入 数字为“5”,则为“dir5”目录)下所有文件的扩展名为bak,并将 该级目录下所有文件名保存到一个文本文件file.txt,然后复制该级 目录到/home 目录

代码展示

#!/bin/bash
# 创建目录和文件for i in {1..9}; do    mkdir -p /tmp/dir$i    echo "创建目录:/tmp/dir$i"    for j in {1..9}; do        touch /tmp/dir$i/dir${i}_file$j        chmod 775 /tmp/dir$i/dir${i}_file$j        echo "创建文件:/tmp/dir$i/dir${i}_file$j"    donedone
# 等待键盘输入一个数字read -p "请输入一个数字(1~9):" num
if [ $num -ge 1 ] && [ $num -le 9 ]; then    # 重命名文件扩展名为bak    for file in /tmp/dir$num/*; do        mv "$file" "${file%.*}.bak"    done        # 将文件名保存到file.txt    ls /tmp/dir$num > /tmp/dir$num/file.txt        # 创建my_directory目录(如果不存在),并复制目录到该目录下    mkdir -p ~/my_directory    cp -r /tmp/dir$num ~/my_directoryelse    echo "输入的数字不在1~9范围内"fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值