GNU/Linux >> Belajar Linux >  >> Linux

Pengujian Cangkang Ikan Untuk Keberadaan File Di $path?

Saya mencoba menguji dalam skrip kulit ikan untuk keberadaan figlet biner. Karena saya menggunakan Linux dan OS X, saya tidak dapat mengandalkan file yang berada di lokasi yang sama dan harus menyelesaikannya secara dinamis. Saya terbiasa melakukan ini dengan $(which) di bash, yang berfungsi.

Dengan ikan meskipun ini tidak bekerja dengan baik. Mengapa?

function print_hostname --description 'print hostname'
  if test -x (which figlet)
    hostname | figlet
  end
end

Jawaban yang Diterima:

Gunakan type di fish seperti di shell mirip Bourne:

if type -q figlet
  hostname | figlet
end

Atau untuk membatasi executable di $PATH (mengabaikan fungsi, bawaan):

if command -s figlet > /dev/null
  hostname | figlet
end

Linux
  1. Apa yang dapat dilakukan shell dotfile untuk Anda

  2. Perintah Secure Shell (SSH) untuk administrasi Linux.

  3. Distribusi Linux Populer untuk Pengujian Keamanan

  1. Deskriptor File &Skrip Shell?

  2. Script Shell Untuk Memindahkan File Terlama?

  3. Ekstensi File Untuk Skrip Unix Shell?

  1. Bagaimana cara menginstal/membuat permintaan khusus untuk cangkang ikan?

  2. Bisakah file .sh menjadi malware?

  3. Bisakah skrip shell menunggu file berubah dan mengambil tindakan?