Saya mencoba ini
./home/user/scripts/someScript
tetapi tidak berhasil
tidak ada berkas atau direktori seperti itu
ada ide?
Saya mencoba ini
./home/user/scripts/someScript
tetapi tidak berhasil
tidak ada berkas atau direktori seperti itu
ada ide?
Jawaban:
Titik utama dalam perintah Anda berarti "relatif ke direktori saat ini". Hapus itu dan itu akan merujuk ke "file someScript
di direktori /home/user/scripts
:
/home/user/scripts/someScript
Jika Anda mendapatkan "Izin ditolak", itu karena Anda tidak memiliki izin yang memadai untuk mengakses file di direktori pengguna lain atau karena file tersebut tidak dapat dieksekusi. Untuk membuatnya dapat dieksekusi, jalankan:
chmod +x /home/user/scripts/someScript
Jika skrip Anda perlu mengakses sumber daya di folder yang sama dengan tempat ia dijalankan, dan Anda menetapkannya sebagai jalur relatif, maka skrip Anda akan rusak.
Saya selalu menambahkan a cd $(dirname $0)
ke kepala skrip saya sehingga folder yang berisi skrip tersebut akan menjadi folder root.
Hapus .
Jika Anda membuat skrip dapat dieksekusi dengan chmod 755 <nameofscript>
menjalankannya, Anda hanya perlu mengetikkan lintasan ke skrip.
Ketika Anda melihat ./script
sedang digunakan itu memberi tahu shell bahwa skrip terletak pada direktori yang sama Anda menjalankannya. Untuk menggunakan path lengkap yang Anda ketikkan sh /home/user/scripts/someScript
.
sh /path/to/file
berbeda dari /path/to/file
. sh
menjalankan /bin/sh
yang terhubung ke /bin/dash
.
sh ./somescript
yang juga dapat diketik sebagai `sh / path / to / script / scriptitself '.