[英]awk: using external variables from bash
我在 bash 腳本中使用 awk 來打印一個包含 bash 中定義的變量名稱的新文件
#!/bin/bash
file_name='test.log'
awk -v file="$file_name" '
BEGIN {
print "@ subtitle \"file\""
}
在那種情況下 awk 打印
@ subtitle "file"
而不是預期的 output
@ subtitle "test.log"
我建議:
file_name='test.log'
awk -v file="$file_name" 'BEGIN{ print "@ subtitle \"" file "\"" }'
Output:
@ subtitle "test.log"
您不能按原樣在字符串中使用變量,但可以像這樣連接字符串和變量:
print "@ subtitle " file ""
在這種情況下,空字符串""
是沒有用的,但它只是作為一個例子。 所以你可以擺脫它,它會在有/沒有它的情況下表現相同。
print "@ subtitle " file
在你的情況下,你想要這樣的東西:
print "@ subtitle \"" file "\""
在您的腳本file
中,變量在雙引號內,因此它只是打印為字符串而不是作為變量引用。
您可以考慮將printf
格式化為 output:
awk -v file="$file_name" 'BEGIN {printf "@ subtitle \"%s\"\n", file}'
@ subtitle "test.log"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.