🚀 部署脚本
这是用于将 文件编码 的 Bash 脚本。
脚本使用方式:将脚本放在 usr/local/bin 文件夹下,命名为 urlencode ,使用时输入 urlencode 文件.pdf 即可输出 Markdown 可复制的链接。
📂 脚本内容
# Base URL for your files
base_url="https://xx" # (在这里输入网址链接)
pdf_folder="/pdf/"
doc_folder="/doc/"
image_folder="/images/"
media_folder="/media/"
# 传入的文件名
filename="$1"
if [ -z "$filename" ]; then
echo "Usage: $0 <filename>"
exit 1
fi
# 获取文件扩展名
extension="${filename##*.}"
base_filename="${filename%.*}" # 获取不带扩展名的文件名部分
# 如果没有后缀名,提示选择文件类型
if [ "$extension" == "$filename" ]; then
echo "No extension detected for '$filename'. Please specify the file type:"
echo "1. PDF"
echo "2. DOC/DOCX"
echo "3. Image (JPG, PNG, JPEG, GIF)"
echo "4. Media (MP4, MP3, AVI, MOV)"
read -p "Enter the number corresponding to the file type: " filetype_choice
case "$filetype_choice" in
1) extension="pdf" ;;
2) extension="doc" ;;
3) extension="jpg" ;; # 默认假设是 JPG 图片
4) extension="mp4" ;; # 默认假设是 MP4 视频
*) echo "Invalid option"; exit 1 ;;
esac
fi
# 使用 omz_urlencode 或 python 进行编码
encoded_name=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$filename', safe=''))")
# 使用 tr 进行小写转换,兼容 macOS 默认的 Bash
extension=$(echo "$extension" | tr '[:upper:]' '[:lower:]')
# 只加一次扩展名
case "$extension" in
pdf)
if [[ "$filename" == *".pdf" ]]; then
echo "[$(basename "$base_filename")]( $base_url$pdf_folder$encoded_name )"
else
echo "[$(basename "$base_filename")]( $base_url$pdf_folder$encoded_name.pdf )"
fi
;;
doc|docx)
if [[ "$filename" == *".doc" || "$filename" == *".docx" ]]; then
echo "[$(basename "$base_filename")]( $base_url$doc_folder$encoded_name )"
else
echo "[$(basename "$base_filename")]( $base_url$doc_folder$encoded_name.doc )"
fi
;;
jpg|jpeg|png|gif)
if [[ "$filename" == *".jpg" || "$filename" == *".jpeg" || "$filename" == *".png" || "$filename" == *".gif" ]]; then
echo ""
else
echo ""
fi
;;
mp4|mp3|avi|mov)
if [[ "$filename" == *".mp4" || "$filename" == *".mp3" || "$filename" == *".avi" || "$filename" == *".mov" ]]; then
echo "[$(basename "$base_filename")]( $base_url$media_folder$encoded_name )"
else
echo "[$(basename "$base_filename")]( $base_url$media_folder$encoded_name.mp4 )"
fi
;;
*)
# 如果没有后缀名,直接输出编码后的内容
echo "$encoded_name"
;;
esac