วิธีเขียนไปยังไฟล์ใน Bash

How Write File Bash



งานสำคัญอย่างหนึ่งที่เราทำขณะทำงานกับสคริปต์ทุบตีคือการอ่านและเขียนไฟล์ ในคู่มือนี้ เราจะเน้นไปที่การอ่านไฟล์ใน bash และวิธีการแก้ไข

มีหลายวิธีในการอ่านและเขียนไฟล์ในทุบตี วิธีที่ง่ายที่สุดคือการใช้ตัวดำเนินการ > และ >>







  • > ตัวดำเนินการจะเขียนทับข้อมูลที่มีอยู่
  • >> โอเปอเรเตอร์จะต่อท้าย data

รูปแบบทั่วไปของการใช้ตัวดำเนินการเปลี่ยนเส้นทางคือ:



ข้อมูล > ชื่อไฟล์
ข้อมูล >> ชื่อไฟล์

มาทำความเข้าใจกับขั้นตอนการเขียนไฟล์ด้วยตัวอย่าง:



วิธีเขียนไฟล์โดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง

ตามที่กล่าวไว้ข้างต้น วิธีการที่ง่ายและตรงไปตรงมาในการเขียนไปยังไฟล์คือการใช้ตัวดำเนินการเปลี่ยนเส้นทาง ตัวอย่างเช่น หากคุณต้องการเปลี่ยนข้อความของไฟล์ที่มีอยู่แล้ว ก่อนอื่นให้สร้างไฟล์ข้อความโดยใช้ชื่อ testfile.txt และเขียนอะไรก็ได้ในนั้น:





บันทึกไฟล์ข้อความ



พิมพ์คำสั่งด้านล่างในเทอร์มินัล:

$ echo เขียนทับข้อความที่มีอยู่ในไฟล์ > testfile.txt

การบิดเกินอาจมีความเสี่ยง ดังนั้นจึงเป็นการดีที่จะเปิดใช้งาน noclobber การตั้งค่า noclobber จะบล็อกการเขียนทับไปยังไฟล์ที่ออก

$ set –o noclobber
$ echo เขียนทับข้อความที่มีอยู่ในไฟล์ > testfile.txt

แต่ถ้าคุณต้องการเลี่ยงผ่าน noclobber ให้ใช้ the > | โอเปอเรเตอร์แทน > :

$ echo เขียนทับข้อความที่มีอยู่ในไฟล์ >| testfile.txt

หรือคุณสามารถปิดการใช้งาน noclobber:

$ set + หรือ noclobber

แต่คำสั่งนี้จะตัดการป้องกันจากไฟล์ทั้งหมด

ผลลัพธ์ข้างต้นแสดงว่าข้อความที่มีอยู่ถูกเขียนทับแล้ว ตอนนี้ ลองใช้ >> โอเปอเรเตอร์:

$ echo ต่อข้อความไปยังไฟล์ข้อความที่มีอยู่ >> testfile.txt

โยนออก ไม่เหมาะที่จะใช้เสมอ เนื่องจากคุณไม่สามารถจัดรูปแบบข้อความโดยใช้มัน ดังนั้นให้ใช้ printf แทน echo เพื่อจัดรูปแบบข้อความตามที่แสดงในคำสั่งต่อไปนี้:

$ printf ยินดีต้อนรับ นี่คือไฟล์ข้อความใหม่ > newtestfile.txt

มาทำความเข้าใจแนวคิดด้วยตัวอย่างสคริปต์ทุบตีกัน เปิด Vim โดยพิมพ์ vim ในเทอร์มินัล หากคุณไม่มีโปรแกรมแก้ไข Vim บนอุปกรณ์ ให้ติดตั้งโดยใช้:

$ sudo apt ติดตั้ง vim

พิมพ์สคริปต์:

#! /bin/bash
echo ใส่ชื่อของคุณ
อ่านชื่อ
echo $name > data_dir.txt
echo ป้อนอายุของคุณ
อ่านอายุ
echo $age >> data_dir.txt
cat data_dir.txt

NS แมว คำสั่งใช้สร้างและแก้ไขไฟล์ บันทึกสคริปต์ด้านบนใน Vim โดยเปลี่ยนโหมดหลังจากกด NS คีย์แล้วพิมพ์ : ใน myscript.sh . เปิดเทอร์มินัลแล้วรันรหัส:

วิธีเขียนไฟล์โดยใช้ Heredoc

หากคุณต้องการเขียนหลายบรรทัด วิธีที่ง่ายที่สุดคือการใช้ Heredoc เอกสารที่นี่หรือที่เรียกว่า Heredoc คือบล็อกรหัสอเนกประสงค์ ไวยากรณ์ของ Heredoc คือ:

สั่งการ<<[-] Delimiter
.
ข้อความ/คำสั่ง
.

ตัวคั่น

สามารถใช้สตริงใดก็ได้แทนตัวคั่น และสามารถใช้ - เพื่อลบช่องว่างแท็บในไฟล์ มาทำความเข้าใจโดยใช้ตัวอย่างง่ายๆ:

#! /bin/bash

แมว<< TEXTFILE
นี่คือไฟล์ข้อความ
ไฟล์นี้สร้างโดยใช้ heredoc
TEXTFILE

คำสั่ง cat สคริปต์ด้านบนสร้างไฟล์ข้อความโดยใช้ชื่อ TEXTFILE และเขียนข้อความลงในไฟล์ที่เพิ่งสร้างขึ้น ตอนนี้บันทึกไฟล์โดยใช้ชื่อ myscript.sh . เปิดเทอร์มินัลและเรียกใช้สคริปต์

วิธีเขียนไฟล์โดยใช้คำสั่ง Tee

อีกวิธีในการเขียนไฟล์คือการใช้คำสั่ง Tee ตามชื่อที่ระบุคำสั่งนี้รับอินพุตและเขียนไปยังไฟล์และแสดงเอาต์พุตพร้อมกัน โดยค่าเริ่มต้น คำสั่ง Tee จะเขียนทับข้อมูลที่มีอยู่

$ echo นี่คือข้อความบางส่วน | ที textfile.txt

หากต้องการผนวกการใช้ –a:

$ echo นี่คือข้อความอื่น | tee –a textfile.txt

หากต้องการเขียนหลายบรรทัด ให้ใช้:

$ echo การเพิ่มข้อความลงในหลายไฟล์ | ที textfile1.txt textfile2.txt textfile3.txt

คำสั่งดังกล่าวจะสร้างไฟล์สามไฟล์หากไม่มีอยู่และเขียนข้อความไปยังแต่ละไฟล์

บทสรุป

คู่มือนี้เน้นที่วิธีการหลายวิธีในการเขียนไฟล์ใน bash พร้อมตัวอย่าง ในการเขียนสคริปต์ทุบตี มีหลายวิธีในการเขียนไฟล์ แต่วิธีที่ง่ายที่สุดคือการใช้โอเปอเรเตอร์การเปลี่ยนเส้นทาง >, >> ในการเขียนหลายบรรทัด สามารถใช้ heredoc และหากคุณต้องการเขียนข้อมูลเดียวกันไปยังหลายบรรทัด คำสั่ง tee ก็ค่อนข้างสะดวก