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
”