选择某文件夹,并进行其他操作(如将选择的目标文件夹复制到其他的位置上等)
shell脚本(适用于debian、ubuntu、麒麟、统信uos中的debian系列)
效果图:
shell脚本如下:
#!/bin/bash
# 此处可进行下载离线包,进行dpkg -i *.deb
sudo apt-get install zenity libatk-adaptor at-spi2-core
# 源文件夹路径,此处可进行修改为其他文件夹
source_folder="/opt/apps/cn.safegprint.www/files/ankeyin"
# 检查源文件夹是否存在
if [ ! -d "$source_folder" ]; then
echo "源文件夹不存在!"
exit 1
fi
# 定义执行额外命令的函数
execute_additional_commands() {
# 在这里添加所有需要执行的额外命令
output_file="/var/log/path_info.log"
# 输出路径信息到文件
echo "文件夹已成功存储到 $akyPath" > "$output_file"
}
while true; do
# 选择目标文件夹路径
target_folder=$(zenity --file-selection --directory --title="选择安装路径" 2> /dev/null)
if [ -z "$target_folder" ]; then
zenity --info --text="未选择安装路径,请重新选择。" --title="提示"
continue
fi
# 确保目标文件夹路径以斜杠结尾
target_folder=$(realpath "$target_folder")
# 提取文件夹名称
folder_name=$(basename "$source_folder")
# 目标文件夹完整路径
akyPath="$target_folder/$folder_name"
# 确认操作
confirm=$(zenity --question --text="安装路径是:$akyPath\n\n确认继续?" --title="确认" --ok-label="继续" --cancel-label="重新选择")
if [ $? -eq 0 ]; then
echo "正在安装中,稍等一会儿"
# 移动文件夹,此处可进行其他操作
if cp -r "$source_folder" "$akyPath"; then
zenity --info --text="安装程序的安装路径是: $akyPath" --title="完成"
execute_additional_commands
exit 0
else
zenity --error --text="存储文件夹失败!" --title="错误"
exit 1
fi
else
zenity --info --text="请重新选择安装路径。" --title="提示"
fi
done