我不确定描述我的问题的正确方法是什么,所以这里有一个例子:
alias ashell='adb shell su $(stat -c %u /data/data/com.termux) -s /data/data/com.termux/files/home/bin/termuxshell'
我不需要和adb forward
,start termux.homeActivity
然后通过 SSH 进入 Termux,我的想法是,我只需使用 adb shell 和su
进入 Termux(据我所知,这并不理想,因为它的行为不正确,但它满足了我的需要)
虽然按原样运行命令可以正常工作,但是在别名化时它会失败,因为它尝试$(stat -c %u /data/data/com.termux)
在本地计算机而不是远程计算机上运行子 shell(),导致失败,因为我的本地设备上没有目录。
函数是否可以替代/成为更好的解决方案?或者有没有办法界定子 shell 并将其传递给 adb?
PS 对子 shell 返回进行硬编码并不理想,因为我有多个设备并且值可能会改变。
答案1
我认为你的问题和帖子中的问题一样
如何定义别名而不执行其中包含的美元符号?
已接受
Kusalananda 的回答
是使用 来转义美元符号\
,但他建议使用 shell 函数。
请参阅答案以了解更多详细信息。