簡體   English   中英

awk:使用來自 bash 的外部變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM