我写了一个 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 上传一些文件到我的服务器,我仍然必须 cd 到/Desktop 然后运行这个脚本,如果我只是加倍单击以执行脚本,它将从 ~ 或/root 登录到我的服务器,无论默认目录是什么。我想从脚本所在的目录登录我的服务器。
有什么方法可以找到文件的位置?或者我需要执行搜索来找到文件?
最佳答案
你可能想要
cd [file dirname $argv0]
切换到脚本所在的目录。
关于linux - 在当前目录运行 expect 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185922/