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