我知道这是非常基本的.但我从来没有弄错.
我想通过使用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"
}
Run Code Online (Sandbox Code Playgroud)
上面代码的输出是,
asisdtt-exp7$ whoami
USER whoami
kandabap
asisdtt-exp7$ exit
Run Code Online (Sandbox Code Playgroud)
当我硬编码我期望的用户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"
Run Code Online (Sandbox Code Playgroud)
输出,
asisdtt-exp7$ whoami
kandabap
asisdtt-exp7$
USER kandabap
Run Code Online (Sandbox Code Playgroud)
我很困惑.任何人都可以帮忙,请...
问候
我不确定你真正想做什么,但这样做会很好:
log_user 0
spawn whoami
expect eof
set jobid $expect_out(buffer)
puts "USER $jobid"
Run Code Online (Sandbox Code Playgroud)
当然,这些都不是真正需要的.您可以使用普通TCL执行相同的操作:
puts "USER [exec whoami]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |