我正在尝试运行一个嵌套的ssh -t -t,但是它在使用cat
和echo
时不会为我提供环境变量。
#!/bin/bash
pass="passwordn"
bla="cat <(echo -e '$pass') - | sudo -S su -"
ssh -t -t -t -t jumpserver "ssh -t -t -t -t server "$bla" "
我将获得一个输出,而无需考虑任何变量。(例如,PS1未显示,但命令正常),问题与cat <(echo -e '$pass') -
有关,但这是在提供sudo
密码后保持echo
活力的方法。
如何实现此目标并获取环境变量以获取适当的输出?
谢谢。
-
-tt
就足够了。使用更多的-t
不会添加更多效果,只会给人留下深刻的印象,即您不知道自己在做什么。 -
cat <(echo -e)
结构的意义是什么?仅写echo
会导致相同的内容,不是吗? -
为什么要使用
sudo su
?sudo
已经需要所有需要吗?
那么它如何以某种时尚的方式外观?
pass="passwordn"
bla="echo '$pass' | sudo -Si"
ssh -tt jumpserver "ssh -tt server "$bla""
它可以工作吗?尝试使用-vvv
切换到ssh
的命令进行调试。它将向您展示实际执行的内容并互相传递给彼此。