在当前目录中运行expect script

时间:2014-03-05 00:11:30

标签: linux shell expect

我写了一个sftp expect脚本来上传和下载文件。

我将脚本文件放在一个文件夹中。并双击脚本以运行脚本以登录远程服务器,但每次我的脚本都将登录主文件夹中的服务器而不是脚本所在的文件夹中。

#!/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上传一些文件到我的服务器,我仍然需要进入/ Desktop并运行这个脚本,如果我只是加倍单击以执行脚本,它将从〜或/ root登录到我的服务器,无论默认目录是什么。我想从脚本所在的目录登录我的服务器。

有什么方法可以找到文件的位置吗?或者我需要执行搜索以找到文件?

1 个答案:

答案 0 :(得分:5)

你可能想要

cd [file dirname $argv0]

切换到脚本所在的目录。