GNU/Linux >> Belajar Linux >  >> Linux

Dapatkan Jalur Lengkap Dari Dalam Skrip Bash?

Saya memiliki skrip bash yang berfungsi dengan jalur relatif. Itu perlu memiliki direktori kerja yang sama dengan direktori tempat skrip disimpan. Ini berfungsi dengan baik selama saya memulainya dari prompt, karena saya bisa cd ke direktori skrip terlebih dahulu. Namun, ketika saya membuat symlink ke skrip di /etc/cron.hourly, skrip tersebut rusak.

Saya memerlukan cara untuk membuat direktori perubahan skrip bash ke direktori tempat skrip disimpan. Namun, sejauh ini saya tidak berhasil. Apakah ada cara mudah untuk melakukan ini, bahkan jika skrip dipanggil dari cron melalui symlink?

Jawaban yang Diterima:

Anda harus bisa melakukan ini.

  • Parameter $0 diperluas ke jalur lengkap (termasuk nama) skrip saat dipanggil.
  • Fungsi shell bawaan test (atau [ ] ) dapat menguji apakah suatu jalur adalah symlink menggunakan -L
  • ls -l , jika diterapkan ke symlink, akan memberikan satu baris keluaran dengan jalur yang benar sebagai bidang terakhir.

Itu cukup bagi Anda untuk menemukan lokasi sumbernya. Tentu saja, itu mungkin symlink, yang mengharuskan Anda melakukan ini secara rekursif…


Linux
  1. Opsi Tidak Dikenal Rsync Dari Eksekusi Skrip Bash?

  2. Dari Mana Skrip Shell Dijalankan?

  3. Bagaimana cara mendapatkan path lengkap dari suatu file?

  1. Jalankan skrip bash dari URL

  2. Bagaimana cara menemukan path lengkap program C++ Linux dari dalam?

  3. login buruh pelabuhan otomatis dalam skrip bash

  1. Tampilkan hanya nama direktori saat ini (bukan path lengkap) di bash prompt

  2. Bagaimana cara menjalankan skrip bash?

  3. bagaimana cara mendapatkan elemen dari daftar di bash?