我正在尝试运行一个期望脚本,该脚本调用已经添加到调用者脚本中的PATH变量的自定义tmux实例,但是期望似乎不尊重这样的变量。
来电脚本
#!/bin/sh
export PATH="$HOME/bin:$PATH"
expect_script
期待剧本:
#!/usr/bin/env expect
spawn tmux
send "hello world"
send: spawn id exp7 not open
while executing "send "hello world""
我正在使用以下解决方法,但想知道是否有更清洁的替代方案。
spawn $env(HOME)/bin/tmux
答案 0 :(得分:2)
可以从全局数组变量env
访问环境变量。
#!/usr/bin/env expect
set ::env(PATH) "$::env(HOME)/bin:$::env(PATH)"
spawn tmux
# Further code below
但是,我很惊讶,如果在前面的情况下没有设置PATH
变量,spawn
命令本身会很明显失败,并显示以下错误消息
spawn tmux
couldn't execute "tmux": no such file or directory
while executing
"spawn tmux"
想知道如果没有PATH
变量你怎么没有得到它,如果你在send命令收到错误消息,那么spawn
可能成功,只有当它是关于要发送命令,它不可用导致此失败。