废话不多说直接上代码
#!/bin/bash
#创建临时文件,用于等会输入内容进文件
temp=$(mktemp -t test.XXXXXX)
temp2=$(mktemp -t test2.XXXXXX)
temp3=$(mktemp -t test3.XXXXXX)
temp4=$(mktemp -t test4.XXXXXX)
temp5=$(mktemp -t test5.XXXXXX)
#加载U盘,由于我的是Linux下的子系统,所以无法使用fdisk挂载
#所以用了mount,把U盘挂载到mnt/g
#dialog --msgbox在图新界面上显示出来
function load {
sudo mount -t drvfs G: /mnt/g
dialog --msgbox "U盘加载成功" 20 30
}
#df -h 把文件系统的挂载信息写入$temp文件
#dialog 输出文件内容
function load2 {
df -h > $temp
dialog --textbox $temp 20 60
}
#卸载U盘
#dialog 图形显示
function down {
sudo umount /mnt/g
dialog --msgbox "U盘卸载成功" 20 30
}
#df -h 把文件系统的挂载信息写入$temp文件
#dialog 输出文件内容
function down2 {
df -h > $temp
dialog --textbox $temp 20 60
}
#显示挂载后U盘使用情况,和里面的文件
function message {
cd /mnt/g
du -h > $temp
ls -F >$temp2
dialog --title "磁盘空间使用情况" --textbox $temp 20 60
dialog --title "文件" --textbox $temp2 20 60
}
#拷贝文件
#通过dialog fselect选择文件和文件夹,并返回信息到temp3,temp4临时文件
#把临时文件内容转到变量,并用cp 进行复制
function kaobei {
dialog --title "请选择要拷贝的文件" --fselect $mnt/ 10 50 2>$temp3
dialog --title "请选择要拷贝到的地址" --fselect $mnt/ 10 50 2>$temp4
val3=$(cat $temp3)
val4=$(cat $temp4)
cp $val3 $val4
dialog --msgbox "拷贝成功" 20 30
}
#主菜单界面,用while 【1】保证每次反复循环,菜单界面用dialog的menu,通过选择把序号重定向到temp
#用case语句进行选择,执行相应的函数
while [ 1 ]
do
dialog --menu "菜单" 20 30 5 1 "加载U盘" 2 "卸载U盘" 3 "查看U盘信息" 4 "拷贝文件" 5 "退出菜单" 2> $temp
if [ $? -eq 1 ]
then
break
fi
selection=$(cat $temp)
case $selection in
1)
load
load2 ;;
2)
down
down2 ;;
3)
message ;;
4)
kaobei ;;
5)
#退出第二重循环
break 2 ;;
*)
dialog --msgbox "无效的选择!" 20 30
esac
done
#删除临时文件
rm -f $temp
rm -f $temp2
rm -f $temp3
rm -f $temp4
rm -f $temp5
#清空命令行界面
clear
如果dailog命令无法找到的话就,就安装一下,因为有些系统自带的图形化界面不一样。也可以自己使用其他的图形化界面。