Saya memiliki beberapa skrip fungsional dan saya ingin menyalin ke /usr/bin
saya ingin menggunakannya sebagai perintah terminal normal. Apakah praktik yang baik untuk menggunakannya dengan .sh
ekstensi atau dapatkah saya menyimpannya tanpa ekstensi?
66
/usr/local/bin
mungkin merupakan pilihan yang lebih baik./usr/bin
dan/usr/local/bin
keduanya harus tersedia untuk semua pengguna, tetapi/usr/local/bin
lebih baik untuk executable yang bukan bagian dari paket.#!/usr/bin/env bash
atau#!/bin/bash
.Jawaban:
Tidak, ini bukan praktik yang baik, Anda harus menyimpan skrip Anda tanpa ekstensi. Perhatikan, skrip yang menjadi bagian dari paket tidak memiliki ekstensi .sh , yaitu pembaruan-grub , bukan pembaruan-grub.sh . Jika Anda masih tidak yakin, maka maklumi, bahwa Panduan Gaya Google Shell mengatakan:
PS Anda tidak harus memasukkan skrip Anda ke dalamnya
/bin
. Anda dapat membuat direktori~/bin
dan meletakkan skrip Anda di sana. Direktori~/bin
dimasukkan$PATH
secara default, jadi skrip yang diletakkan di sana dapat dijalankan seperti perintah shell lainnya.sumber
$PATH
secara default" - Sejak kapan? Lagi pula,~/.local/bin
mungkin ini pilihan yang lebih baik karena standar.Saya kedua rekomendasi untuk menggunakan
~/bin
yang secara otomatis ditambahkan ke Anda$PATH
, seperti kata Sergey . Atau/usr/local/bin
, yang mungkin sudah ada diPATH
. Namun:Ekstensi jarang ditemukan
/usr/bin
. Dalam sistem saya, saya hanya dapat menemukan dua:Jadi, jika Anda mengemas, pasti tinggalkan ekstensi.
sumber
~/bin
ditambahkan ke$PATH
secara otomatis jika ada, tidak perlu menambahkannya secara manual. Cukup buat direktori, keluar dan masuk kembali.Cukup letakkan baris berikut di atas file:
Jadi-file itu akan secara otomatis mengetik: Shell Script tanpa ekstensi apa pun!
Ingatlah untuk memberikan izin eksekusi ke file.
Untuk meletakkan skrip sehingga-dapat dijalankan dengan perintah langsung, kunjungi: Di mana saya harus meletakkan skrip saya sehingga saya dapat menjalankannya dengan perintah langsung?
sumber