Bash
同一行上的下一個命令輸出?bash 腳本
我有以下簡單的腳本:
echo "-------------------------- SOA --------------------------------" echo " " echo -n " ---------> "; dig soa "$1" +short | awk '{print $3}'
輸出是這樣的:
-------------------------- SOA -------------------------------- ---------> 2019072905
現在我的問題是我可以在 dig 之後發出一個“echo”命令,並且輸出是這樣的:
-------------------------- SOA ----------------------------- ---------> 2019072905 <-------------
我試圖搜尋類似的案例,但找不到任何相關的。
這可能嗎?
提前致謝。
我會做整個事情
printf
:#!/bin/sh header='-------------------------- SOA --------------------------' headerLength=$(awk '{print length()}' <<<"$header") value=$(dig soa "$1" +short | awk '{print $3}') valueString="-----------> $value <-------------" valueLength=$(awk '{print length()}' <<<"$valueString") offset=$(((headerLength + valueLength)/2+1)) printf "%s\n\n%${offset}s\n" "$header" "$valueString"
這具有始終居中顯示的優點,無論您的值的長度是多少(使用稍作修改的版本,只是
value=$1
為了說明):$ foo.sh 2019072905 -------------------------- SOA -------------------------------- -----------> 2019072905 <------------- $ foo.sh "some random long string" -------------------------- SOA -------------------------------- -----------> some random long string <------------- $ foo.sh "foo" -------------------------- SOA -------------------------- -----------> foo <-------------
cmd=$(dig soa "$1" +short | awk '{print $3}'; echo -n \<----------;) echo "-------------------------- SOA --------------------------------" echo " " echo -n " ---------> ";echo $cmd