Bash 自动机外壳脚本-如果mv重复,则发出警告

Bash 自动机外壳脚本-如果mv重复,则发出警告,bash,shell,automator,osascript,Bash,Shell,Automator,Osascript,我已经构建了一个Automator应用程序,它接收一个文件并(在输入管理员密码后)更改所有权并将其移动到另一个用户的文件夹。我正在使用命令: mv -i source target 移动文件。在覆盖具有相同名称的现有文件之前,-i选项将提示。但此提示仅在命令行上出现。如果有一个重复的文件名,我的Automator应用程序就好像它工作了一样,但实际上什么也没发生 我的问题:如何在shell脚本中检测-I提示符,并在查找器中将其显示为对话框?下面是完整的“运行Shell脚本”操作: ##获取密码然

我已经构建了一个Automator应用程序,它接收一个文件并(在输入管理员密码后)更改所有权并将其移动到另一个用户的文件夹。我正在使用命令:

mv -i source target
移动文件。在覆盖具有相同名称的现有文件之前,-i选项将提示。但此提示仅在命令行上出现。如果有一个重复的文件名,我的Automator应用程序就好像它工作了一样,但实际上什么也没发生

我的问题:如何在shell脚本中检测-I提示符,并在查找器中将其显示为对话框?下面是完整的“运行Shell脚本”操作:

##获取密码然后下载文件
echo$1 | sudo-Sk chown aklap“$2”;
##密码,然后移动文件
echo$1 | sudo-Sk mv-i“$2”/目的地;
x=`echo$2 | awk-F/'{print$NF}`;#获取文件名(用于删除路径的awk)

osascript我希望没有人有密码
-E1234
你好*
或。。。请使用更多的引号,而不是
echo$1
使用
printf'%s'$1'
来只获取基本名称,在测试后使用
${2##*/}
[[-n${2##*/}]
通过或
$(基本名称“$2”)
,但如果
$2
有尾随的新行,则可能失败。。。请认真对待你的脚本,你在用管理员的权限做自动化的事情!这很危险!谢谢你的建议。我知道这是草率的,有安全问题;我现在只是在我的机器上私下使用它。关于我的问题有什么建议吗?我对AppleScript不太了解,无法提出具体的解决方案,但我会跳过
-I
选项,选择
mv
,而是采取多步骤方法:检查文件是否存在;如果没有,则为目的地“
mv“$2”/destination
;否则,通过AppleScript提示是否继续,如果不继续,则无条件移动。这将所有用户交互分离到AppleScript层,所有实际的文件处理分离到
bash
层。谢谢,在运行mv命令之前检查文件是否存在是我的答案!
## get password then chown file
echo $1 | sudo -Sk chown aklap "$2";

## password, then move file
echo $1 | sudo -Sk mv -i "$2" /destination;

x=`echo $2 | awk -F/ '{print $NF}'`;  ## get file name (awk to remove remove path)

osascript <<EOD
  tell app "System Events" to display dialog "The file: \"$x\" has been moved to /destination"
EOD