Eu quero executar meu script, que está localizado no sistema / bin e permissões é 755.
Com sh myscript
não há problema, mas myscipt
ou ./myscript
não funciona mesmo se o pwd
saída é /system/bin
.
No Ubuntu eu só preciso colocar em /usr/bin
e depois de definir as permissões, posso executá-lo facilmente. Eu me perguntei por que eu tenho que colocar isso toda vez que eu digito.
Por exemplo Eu empurro o arquivo binário aria2 para / system / bin (755) e posso facilmente executar com digitação aria2c
. Eu agora que isso não é script, mas eles são a mesma coisa que eu tentei.
Atualizar
Eu tenho hashbang como #!/bin/bash
e qual saída sh é /system/bin/sh
bash
android
bash-scripting
makgun
fonte
fonte
#!/bin/sh
ou#!/usr/bin/env bash
ou algo assim? Ou não existe tal linha, ou há uma, mas com caminho errado. Não faço ideia do que seria o caminho correto no adroid. Consiga isso usandowhich sh
.#!/system/bin/bash
ao invés de#!/bin/bash
??Respostas:
Para ter respondido: o Android tem layout de sistema de arquivos diferente, e o bash está em (a partir do linux PoV não-padrão)
/system/bin
. É por isso que o script estava trabalhando no linux (Ubuntu) e não no android.Para executáveis não nativos (por exemplo, bash, python, etc.) para trabalhar o "hashbang" (
#!
) deve ser atualizado para conter o caminho correto para o intérprete (#!/system/bin/bash
).Se houver
/usr/bin/env
no android, usando#!/usr/bin/env bash
tornaria o script portátil.fonte