บางครั้งแบบฝึกหัดบางบทมีจุดมุ่งหมายเพื่ออธิบายคำสั่งที่ค่อนข้างแปลกและแปลกกว่าในทางกลับกันมีบางคำสั่งที่มีการแจกแจงแบบอนุกรมและไม่เป็นที่นิยมเท่า cd, ls, cat ฯลฯ แต่ก็ใช้ได้จริง ในบทช่วยสอนนี้ฉันจะแสดงสิ่งที่สามารถทำได้ด้วยสองคำสั่งเหล่านี้: ชื่อฐานและบอกฉัน.
บางทีอาจเป็นเรื่องเล็กน้อยที่พวกเขาดูเหมือนไร้สาระสำหรับคุณและพวกเขาไม่มีประโยชน์ แต่พวกเขามี ใช้งานได้จริง ในบางกรณีเช่นในสคริปต์ที่คุณต้องแยกบางส่วนของพา ธ เช่นชื่อไฟล์หรือไดเร็กทอรีเพื่อให้คำสั่งอื่นทำงานกับสิ่งนี้ ...
สิ่งที่พวกเขาสำหรับ
คำสั่งเหล่านี้เป็นพื้นฐานมากและ หน้าที่ของมัน เสียง:
- ชื่อฐาน: ใช้เพื่อแยกชื่อไฟล์จากพา ธ
- บอกฉัน: ใช้เพื่อแยกชื่อไดเร็กทอรีจากพา ธ
ตัวอย่างการใช้งาน
คุณสามารถดูบางส่วนได้ที่นี่ ตัวอย่าง วิธีใช้:
- ตัวอย่างเช่นการใช้ ชื่อฐาน ด้วย / etc / passwd และส่งคืนชื่อของไฟล์ในเอาต์พุตในกรณีนี้ passwd:
basename /etc/passwd
- คุณยังสามารถระบุ ส่วนขยาย เพื่อให้คุณได้ชื่อไฟล์ที่ไม่มีนามสกุล ตัวอย่างเช่นสมมติว่าคุณต้องการแยกชื่อของรูปภาพ /home/media/test.jpg โดยไม่มีนามสกุล jpg (จะส่งคืน prueba):
basename -s .jpg /home/media/prueba.jpg
- คุณสามารถทำได้ ประมวลผลหลายเส้นทางพร้อมกัน แยกต่างหากสำหรับสิ่งนี้คุณต้องใช้ตัวเลือก -a:
basename -a /etc/passwd /var/log/boot.log
- หากต้องการทำสิ่งที่ตรงกันข้ามและตั้งชื่อไดเร็กทอรีโดยไม่มีชื่อไฟล์คุณต้องใช้ บอกฉัน. ตัวอย่างเช่นหากคุณต้องการใช้ในพา ธ /var/spool/mail/test.txt และให้ส่งคืน / var / spool / mail ให้ใช้:
dirname /var/spool/mail/prueba.txt
สำหรับก ยูทิลิตี้ในสคริปต์คุณมีอีกตัวอย่างหนึ่งที่นี่ ลองนึกภาพว่าคุณมีสคริปต์ง่ายๆและในนั้นมีเส้นทางที่แปรผัน แต่คุณต้องการให้แสดงไดเร็กทอรีที่มีไฟล์โดยไม่คำนึงถึงไฟล์ในกรณีนี้คุณอาจมีสิ่งต่อไปนี้:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
เห็นได้ชัดว่าในสคริปต์นี้ "ชื่อพา ธ " จะเป็นสแตติกเดียวกันที่ประกาศโดยค่าคงที่ในตอนต้น แต่อาจมีบางกรณีที่ไม่ใช่และนั่นคือที่ มันสามารถใช้ได้จริง. ตัวอย่างเช่น
/*script para convertir una imagen gif en png*/ #!/bin/sh for file in *.gif;do #Salir si no hay ficheros if [! -f $file];then exit fi b='basename $file .gif' echo NOW $b.gif is $b.png giftopnm $b.gif | pnmtopng >$b.png done
ตัวอย่างที่ดีของสิ่งเหล่านั้นเมื่อคุณเรียนรู้คุณจะเห็นว่าไร้ประโยชน์ แต่เมื่อคุณเข้าสู่หัวข้อคุณจะเห็นว่าสิ่งเหล่านั้นใช้ได้จริง