在当前目录中运行expect脚本

我写了一个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我的服务器。

有什么方法可以find文件的位置? 或者我需要执行search来查找文件?

你可能想要

 cd [file dirname $argv0] 

切换到脚本所在的目录。