Bash ช่วยให้คุณวางสายติดกันและพวกเขาก็จะถูกจับเข้าด้วยกัน
ดังนั้นนี่คือ:
$ echo "Hello"', world!'
ผลิต
Hello, world!
เคล็ดลับคือการสลับระหว่างสตริงเดี่ยวและคู่ที่ยกมาตามที่ต้องการ น่าเสียดายที่มันยุ่งมากอย่างรวดเร็ว ตัวอย่างเช่น:
$ echo "I like to use" '"double quotes"' "sometimes"
ผลิต
I like to use "double quotes" sometimes
ในตัวอย่างของคุณฉันจะทำสิ่งนี้:
$ dbtable=example
$ dbload='load data local infile "'"'gfpoint.csv'"'" into '"table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '"'"'"' LINES "'TERMINATED BY "'"'\n'"'" IGNORE 1 LINES'
$ echo $dbload
ซึ่งสร้างผลลัพธ์ต่อไปนี้:
load data local infile "'gfpoint.csv'" into table example FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "'\n'" IGNORE 1 LINES
มันยากที่จะดูว่าเกิดอะไรขึ้นที่นี่ แต่ฉันสามารถใส่คำอธิบายประกอบโดยใช้เครื่องหมายอัญประกาศ Unicode สิ่งต่อไปนี้ใช้ไม่ได้กับการทุบตี - เป็นเพียงภาพประกอบเท่านั้น:
dbload=' load data local infile "' 'gfpoint.csv'' " into' table $dbtable FIELDS TERMINATED BY ',' ENCLOSED BY '' "' ' LINES' TERMINATED BY "' '\n'' " IGNORE 1 LINES' '' '' '' '' ''
เครื่องหมายคำพูดเช่น "''" ด้านบนจะถูกตีความโดย bash เครื่องหมายคำพูด" 'จะสิ้นสุดในตัวแปรผลลัพธ์
หากฉันให้การรักษาแบบเดียวกันกับตัวอย่างก่อนหน้านี้ดูเหมือนว่า:
$ echo“ I like to use” ' "double quotes"' “ sometimes”