我知道这是非常基本的。但我从来没有弄错。
我想使用whoami命令获取终端用户ID。 我在下面给出了我的脚本,但它只返回命令名,而不是用户名??
任何人都可以使用whoami命令帮助获取终端用户ID。
我的代码是,
send "whoami\r"
set timeout 5
expect -re {([a-z]+)} {
set jobid $expect_out(0,string)
}
send_user "\r\nUSER $jobid\r\n"
}
上述代码的输出是,
asisdtt-exp7$ whoami
USER whoami
kandabap
asisdtt-exp7$ exit
当我硬编码我预期的用户ID(kandabap)的第一个字母时,我得到的答案是正确的。该代码是,
send "whoami\r"
set timeout 5
expect -re {k([a-z]+)} {
set jobid $expect_out(0,string)
}
send_user "\r\nUSER $jobid\r\n"
输出,
asisdtt-exp7$ whoami
kandabap
asisdtt-exp7$
USER kandabap
我非常困惑。任何人都可以帮忙,请...
此致
答案 0 :(得分:5)
我不确定你真正想做什么,但这样做会很好:
log_user 0
spawn whoami
expect eof
set jobid $expect_out(buffer)
puts "USER $jobid"
当然,这些都不是真正需要的。您可以使用普通TCL执行相同的操作:
puts "USER [exec whoami]"