Jalankan skrip tanpa mengetik sh di Android

2

Saya ingin menjalankan skrip saya yang terletak di system / bin dan izin adalah 755

Dengan sh myscript tidak ada masalah tapi myscipt atau ./myscript tidak berfungsi bahkan jika pwd output adalah /system/bin.

Di ubuntu saya hanya perlu memasukkan /usr/bin dan setelah mengatur izin, saya bisa menjalankannya dengan mudah. Saya bertanya-tanya mengapa saya harus memasukkan setiap kali saya mengetiknya.

Sebagai contoh Saya mendorong file biner aria2 ke / system / bin (755) dan saya dapat dengan mudah menjalankannya dengan mengetik aria2c. Saya sekarang ini bukan skrip tetapi mereka hal yang sama apa yang saya coba.

Memperbarui

Saya punya hashbang suka #!/bin/bash dan yang sh output /system/bin/sh

makgun
sumber
Apakah ada "hashbang" di file? #!/bin/sh atau #!/usr/bin/env bash atau semacam itu? Entah tidak ada garis seperti itu, atau ada satu tetapi dengan jalan yang salah. Tidak tahu apa jalan yang benar pada adroid. Dapatkan itu menggunakan which sh.
Martian
Silakan lihat pembaruan saya
makgun
1
Kemudian cukup modifikasi skrip untuk memiliki jalur yang benar di sana.
Martian
Anda mengatakan bahwa saya perlu menggunakan #!/system/bin/bash dari pada #!/bin/bash ??
makgun
Terima kasih, ini berhasil. Saya lupa memodifikasinya untuk Android. Terima kasih.
makgun

Jawaban:

1

Untuk menjawabnya: Android memiliki tata letak sistem file yang berbeda, dan bash ada di (dari lokasi non-standar Linux PoV) /system/bin. Itu sebabnya skrip bekerja di linux (Ubuntu) dan bukan di android.

Untuk executable non-asli (mis. Bash, python, dll.) Untuk menjalankan "hashbang" #! ) harus diperbarui untuk memuat jalur yang benar ke penerjemah ( #!/system/bin/bash ).

Jika ada /usr/bin/env di android, menggunakan #!/usr/bin/env bash akan membuat skrip portable.

Martian
sumber