簡體   English   中英

如何在shell文件中使用awk的$ 0變量

[英]how to use awk's $0 variables in the shell file

1.我的shell文件是

 [root@node3 script]# cat hi.sh
 #!/bin/bash
 strings="sdsf sdsda sdsadx"
 echo `awk "{print substr($0,0,9)}"<<<$strings`

2.exe我的shell文件

[root@node3 script]# sh hi.sh 

awk: {print substr(hi.sh,0,9)}

awk:                 ^ syntax error

awk: 致命錯誤: 0 是 substr 的無效參數個數

那么如何在外殼文件中使用awk的$ 0呢?

$ 0默認文件的名稱。

另一個問題。 我想使用有關awk的$ 0變量,但要在shell文件中使用另一個$變量。我該怎么辦?

$ cat hi.sh 
#!/bin/bash 
strings="sdsf sdsda sdsadx" 
num=9 
echo \`awk '{print substr($0,0,$num)}' <<< $strings\`

腳本的問題是在awk中使用了雙引號。 用單引號替換它們。

當使用雙引號時,其中的$0將被視為腳本的第一個參數,在本例中為腳本名稱hi.sh 如果使用單引號,則可以將$0用作awk參數來顯示整行。

同樣,這里不需要echo ,您可以使用awk '{print substr($0,0,9)}' <<< $strings

$ cat hi.sh
#!/bin/bash
strings="sdsf sdsda sdsadx"
#echo `awk '{print substr($0,0,9)}' <<< $strings` --echo not needed
awk '{print substr($0,0,9)}' <<< $strings
$
$ sh hi.sh
sdsf sdsd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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