Execute o script sem digitar sh no Android


2

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


Existe um "hashbang" no arquivo? #!/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 usando which sh.
Martian

Por favor, olhe minha atualização
makgun

1
Em seguida, basta modificar o script para ter o caminho correto.
Martian

Você diz que eu preciso usar #!/system/bin/bash ao invés de #!/bin/bash ??
makgun

Obrigado isso funcionou. Eu esqueci de modificá-lo para o Android. Obrigado.
makgun

Respostas:


1

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.