Bagaimana cara mencetak hanya nama skrip?


9
[username@notebook ~]$ cat foo.sh 
#!/bin/bash

echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$ 

Pertanyaan : Bagaimana saya bisa mengeluarkan "foo.sh"? Tidak peduli bagaimana itu dieksekusi.

Jawaban:


22

Gunakan basename:

#!/bin/bash

basename -- "$0"

Jika Anda ingin menetapkannya ke variabel, Anda akan melakukan:

my_name=$(basename -- "$0")

6
Ini akan gagal jika nama skrip dimulai dengan tanda hubung -, Anda perlu basename -- "$0". Menggunakan ekspansi parameter shell untuk menghindari itu dan jangan memaksa Anda untuk meluncurkan perintah eksternal.
— cuonglm

3
@cuonglm, sepertinya nama skrip tidak akan dimulai dengan tanda hubung, tetapi ini adalah poin yang valid.
— cjm

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.