使用超过一个级别的bash别名(shell中的shell)[关闭]

问题描述 投票:0回答:1

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

例如,

sh ='ssh [email protected]'

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',但作为第一步,我想至少让它工作。

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

linux bash shell alias
1个回答
1
投票

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

alias shls='ssh [email protected] ls'

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

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

© www.soinside.com 2019 - 2024. All rights reserved.