我需要一个交互式 bash 脚本模板来将文件复制到预定义的目标文件夹。如果可能的话,当提示用户输入时,将为预定义的源目录启用 Tab 补全。基本逻辑如下:
脚本示例1:
/bin/bash
enable tab completion to load from /src/dir #perhaps using pwd as script is loaded
echo "filename or pattern?" #interactively ask user to provide filename or pattern
'user input'=$FILENAME #define interactive user input as filename
rsync -rv /src/dir/$FILENAME /dest/dir/ && rm -r /src/dir/$FILENAME
done
我知道这很粗糙/不正确,但希望期望的结果足够清晰。提前感谢任何指导!!如果能提供特定 bash 脚本技术的链接,我将不胜感激。
#!/bin/bash
read -e -p "Filename or pattern? " SRC_FILE
rsync "$SRC_FILE" /dest/dir && rm -r "$SRC_FILE"
因此,制表符补全效果很好,并且在“引用”字符串之后
"$SRC_FILE"
rsync 停止抛出错误。看来我现在有一个很棒的小脚本,它完全按照我的需要执行!而且我在这里学会了如何正确格式化代码,谢谢!
答案1
尝试read -e -p
如下:
read -e -p "Enter destination filename" DEST_FILE
-e 启用自动完成并且 $DEST_FILE 将保存您需要的数据。