使用超出一个级别的bash别名(shell中的shell)

时间:2018-03-06 19:38:22

标签: linux bash shell alias

我希望在我的终端上执行别名,该别名将登录到另一个shell并在那里执行命令。

例如,

sh =' ssh admin@x.x.x.x'

shls =' sh; ls' (也尝试了' sh&& ls')

在这种情况下,当我提供' shls'时,我想ssh到(pwd less entry enabled)x.x.x.x然后在那里执行ls命令。但是' ls'部分不起作用。

我理解shell已更改,因此它不再在父shell的范围内触发ls,但只是想知道是否有办法将其推送到登录的shell并在那里执行。

事实上,我想使用x.x.x.x中可用的另一个别名代替' ls'但作为第一步,我想至少让它发挥作用。

希望我能说清楚,先谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将命令作为参数传递给ssh(在各种连接参数之后):

alias shls='ssh admin@x.x.x.x ls'

BTW,我建议不要使用别名sh - 这是运行shell脚本(*)的常用命令,并赋予它不同的含义可能会引起混淆。

(*虽然使用sh命令,但通常最好给脚本一个正确的shebang行,然后输入它的路径。)