Cara Mengekstrak Nama Asas Fail Tanpa Laluan dan Sambungan dalam Bash

Cara Mengekstrak Nama Asas Fail Tanpa Laluan Dan Sambungan Dalam Bash



Perintah nama asas biasanya digunakan dalam Bash untuk mendapatkan semula nama asas fail atau direktori daripada laluan tertentu dengan mengalih keluar sebarang komponen direktori utama. Artikel ini akan meneroka cara mengekstrak nama asas fail tanpa laluan dan sambungannya menggunakan bash.

Ekstrak Nama Asas Fail Tanpa Laluan dan Sambungan dalam Bash

Untuk mengekstrak nama asas fail tanpa laluan dan sambungannya, kita boleh menggunakan arahan nama asas bersama-sama dengan ciri penggantian parameter bash. Perintah nama asas mengembalikan komponen terakhir nama laluan, yang dalam kes kami ialah nama fail dengan sambungannya. Walau bagaimanapun, dengan menentukan pilihan akhiran, kami boleh menanggalkan sambungan daripada nama fail, berikut adalah contoh kod bash:

#!bin/bash
laluan fail = / rumah / aaliyan / bash3.sh
s =$ ( nama asas $filepath )
bergema ' ${s%.*} '

Skrip bash di atas mentakrifkan pembolehubah yang dipanggil ' laluan fail ' dan memberikannya laluan fail ' /home/aaliyan/bash3.sh “. Skrip kemudian menggunakan arahan nama asas untuk mengekstrak nama asas fail daripada laluan fail dan memberikan hasilnya kepada pembolehubah yang dipanggil 's'.







Peluasan parameter kedua mengalih keluar sambungan daripada nama fail dengan mengalih keluar padanan terpendek yang mungkin bagi sebarang bilangan aksara diikuti dengan titik menggunakan '%.*'. Rentetan yang terhasil, 'bash3', kemudian dicetak ke konsol menggunakan arahan gema:





Satu lagi cara untuk mengekstrak nama asas fail tanpa laluan dan sambungan fail adalah dengan menggunakan pengembangan parameter iaitu tanpa menggunakan arahan nama asas, di bawah adalah contoh kod bash yang menggunakan kaedah pengembangan parameter untuk mendapatkan nama asas fail tanpa fail laluan dan sambungan fail:





#!bin/bash
laluan fail = / rumah / aaliyan / bash3.sh
s = ${filepath##*/}
bergema ' ${s%.*} '

Ini ialah skrip bash yang mentakrifkan pembolehubah yang dipanggil 'filepath' dan memberikannya nilai ' /home/aaliyan/bash3.sh “. Skrip kemudian menggunakan ciri pengembangan parameter bash dua kali untuk mengekstrak nama asas fail tanpa laluan dan sambungannya. Khususnya, pengembangan parameter pertama mengalih keluar laluan daripada nama fail dengan mengalih keluar padanan terpanjang yang mungkin bagi sebarang bilangan aksara diikuti dengan garis miring ke hadapan menggunakan '##/'.

Rentetan yang terhasil, “ bash3.sh ” kemudiannya diberikan kepada pembolehubah yang dipanggil “s”. Peluasan parameter kedua mengalih keluar sambungan daripada nama fail dengan mengalih keluar padanan terpendek yang mungkin bagi sebarang bilangan aksara diikuti dengan titik menggunakan '%.'. Rentetan yang terhasil, 'bash3', kemudian dicetak ke konsol menggunakan arahan gema:



Kesimpulan

Mengekstrak nama asas fail tanpa laluan dan sambungannya ialah tugas biasa dalam skrip bash. Dengan menggunakan perintah nama asas dalam kombinasi dengan penggantian parameter dan ciri pengembangan parameter bash, kami boleh mencapai tugas ini dengan mudah. Ini boleh berguna apabila bekerja dengan nama fail dalam skrip, contohnya, apabila menamakan semula fail atau menjalankan operasi pada fail dengan nama yang serupa.