我写了一个sftp expect脚本来上传和下载文件。
我把脚本文件放在一个文件夹中。 双击脚本运行脚本login远程服务器,但是每当我的脚本将login到主文件夹中的服务器而不是脚本所在的文件夹中。
#!/usr/bin/env expect set login "username" set addr "server.com" set pw "mypassword" set timeout -1 sleep 1 spawn sftp $login@$addr expect "Password:" {send "$pw\r"} sleep 1 interact
例如,我把这个脚本放在/ Desktop上,如果我想从我的本地机器的/ Desktop上传一些文件到我的服务器,我还是要cd到/ Desktop,然后运行这个脚本,如果我只是双击执行它会从〜或/ rootlogin到我的服务器的脚本,无论默认目录是什么。 我想从脚本所在的目录login我的服务器。
你可能想要
cd [file dirname $argv0]
切换到脚本所在的目录。