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
bash
android
bash-scripting
makgun
sumber
sumber
#!/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 menggunakanwhich sh
.#!/system/bin/bash
dari pada#!/bin/bash
??Jawaban:
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.sumber