如何使 Subshel​​l 成为别名的一部分?

如何使 Subshel​​l 成为别名的一部分?

我不确定描述我的问题的正确方法是什么,所以这里有一个例子:

alias ashell='adb shell su $(stat -c %u /data/data/com.termux) -s /data/data/com.termux/files/home/bin/termuxshell'

我不需要和adb forwardstart termux.homeActivity然后通过 SSH 进入 Termux,我的想法是,我只需使用 adb shell 和su进入 Termux(据我所知,这并不理想,因为它的行为不正确,但它满足了我的需要)

虽然按原样运行命令可以正常工作,但是在别名化时它会失败,因为它尝试$(stat -c %u /data/data/com.termux)在本地计算机而不是远程计算机上运行子 shell(),导致失败,因为我的本地设备上没有目录。

函数是否可以替代/成为更好的解决方案?或者有没有办法界定子 shell 并将其传递给 adb?

PS 对子 shell 返回进行硬编码并不理想,因为我有多个设备并且值可能会改变。

答案1

我认为你的问题和帖子中的问题一样
如何定义别名而不执行其中包含的美元符号?

已接受 Kusalananda 的回答 是使用 来转义美元符号\,但他建议使用 shell 函数。

请参阅答案以了解更多详细信息。

相关内容