Dalam file .sh saya, saya tidak bisa menjalankan perintah semut atau mv atau cp tetapi perintah yang sama dijalankan pada terminal.di bawah ini adalah skrip saya
file sample.sh
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
path ditambahkan dalam file .bashrc.
export PATH=$PATH:/usr/bin/
cp, mv, semut hanya bekerja di bawah terminal bukan melalui scirpt.
android
/ant
, apakah binari ini ada di / usr / bin?Jawaban:
Karena skrip Anda adalah skrip shell (
/bin/sh
), makaPATH
entri Anda di.bashrc
tidak akan dibaca karena itu adalah untukbash
(/bin/bash
) shell interaktif.Untuk membuat
PATH
entri Anda tersedia untuk/bin/sh
skrip dijalankan oleh pengguna tertentu, tambahkanPATH
entri ke.profile
file di direktori home pengguna tersebut.Selain itu, Anda dapat menambahkan path lengkap untuk setiap perintah dalam skrip:
Atau atur
PATH
variabel termasuk semua yang diperlukan$PATHS
di awal skrip Anda.sumber
PATH
di tempat yang tepat, bukan.bashrc
. Mengubah skrip menjadi skrip bash tidak akan membuat perbedaan:.bashrc
hanya dimuat oleh shell interaktif.Mengalami masalah yang sama saat menjalankan biner yang jalurnya diset di bashrc.
Memecahkan masalah dengan melakukan hal berikut:
Tambahkan biner atau tambahkan tautan ke biner di / usr / bin.
Kemudian periksa menggunakan
Anda dapat menghapus bashrc formulir entri.
sumber
Anda dapat melakukan satu hal sederhana jika Anda memiliki skrip kecil dan menyelesaikan pekerjaan Anda secepatnya
pergi menggunakan perintah baris di bawah perintah
perintah di atas akan mencetak keluaran termasuk jalur yang menggunakan perintah itu langsung
sumber