ファイルにはプリンタのリストがあります。
0:root@SERVER:/root #cat printernames.txt
PRINTQ1
PRINTQ2
PRINTQ3
...
0:root@SERVER:/root #
この出力を生成するコマンドがあります(PRINTQ1などの特定のプリンターに関する情報の場合、=のある行の順序は次のように異なる場合があります)。
0:root@SERVER:/root #lsque -q PRINTQ1
PRINTQ1:
device = PRINTQ1.dev
host = AL1
l_statfilter = /usr/lib/lpd/aixlong
rq = LPT1_PASSTHRU
s_statfilter = /usr/lib/lpd/aixshort
up = TRUE
0:root@SERVER:/root #
lsque -q PRINTERNAME
次のコマンド出力が必要です。
/usr/sbin/piomisc_base mkpq_other -q"PRINTQ1" -d "PRINTQ1.dev" \
-b"/usr/lpd/rembak" -u"TRUE" -h"PRINTQ1" -r"PRINTQ1" \
-s"/usr/lib/lpd/aixshort" -l"/usr/lib/lpd/aixlong"
質問:lsqueコマンドの出力からpiomisc_baseコマンドをどのように生成できますか? piomisc_baseの正しい位置に値を入力するだけです。
したがって、デフォルトでは、後で(他のサーバーで)実行するpiomisc_baseコマンドを生成します。
-b"/usr/lpd/rembak"
->これは定数です
ベストアンサー1
使用ksh93
:
#!/bin/ksh -e
queue="$1"
typeset $( lsque -q "$queue" | sed -e '1d' -e 's/ //g' )
/usr/sbin/piomisc_base mkpq_other \
-q"$queue" \
-d "$device" \
-b"/usr/lpd/rembak" \
-u"$up" \
-h"$queue" \
-r"$queue" \
-s"$s_statfilter" \
-l"$l_statfilter"
キューはコマンドラインから取得され、変数に保存されますqueue
。次に、その値を使用してlsque
質問に表示される出力を取得します。このsed
コマンドは、この出力の最初の行を削除し、すべてのスペースを削除します。
上記の操作の結果が渡され、typeset
出力の変数に値が割り当てられます。
その後、これらの変数は呼び出しに使用されますpiomisc_base
。