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.