QNAP TS231P NASからServerをシャットダウンさせるスクリプト説明
今更ながらですが、自分なりの解釈をしましたので備忘録として記入
@        A    
echo $password | /share/homes/user2/sd/ssh-askpass-2.sh   (次の行に継続) 
       ssh  user2@192.168.1.999 -p port_num  "sudo shutdown -P now"
    B
#!/bin/bash
if [ -n "$PASSWORD" ]; then  C
  cat <<< "$PASSWORD"          D
  exit 0            E
fi
read PASSWORD         F
export SSH_ASKPASS=$0     G
export PASSWORD        H
export DISPLAY=dummy:0     I
exec setsid  "$@"
 J  K  L
@ echo を使ってパスワードを標準出力へ パイプで 標準入力にパスワードを渡す
A shスクリプト(ssh-askpass-2.sh)を動かす
 
C shスクリプトでpasswordに文字列があるか判断(-n:1文字以上) 無いのでif文を抜ける
F passwordを標準入力から読み込む(@echoからパイプで渡されたpasswordが入る)
G 環境変数SSH_ASKPASSに自分自身($0)のシェルをセットする(ssh-askpass-2.sh)
H 環境変数PASSWORDをセット
I 環境変数DISPLAYにダミーをセット
J 現プロセスを置き換えてコマンド(K)を実行
K 新たなプロセスを起動しシェルの引数全て($@)を渡す
     ($@:ssh  user2@192.168.1.999 -p port_num  "sudo shutdown -P now")
L 引数全て($@)
B ssh が起動される。
  ssh が制御できる端末を持っておらず、環境変数DISPLAYと環境変数SSH_ASKPASSが
  設定されている場合、ssh は環境変数SSH_ASKPASSに指定されたプログラムを起動し
  x11ウィンドウズを使ってパスワードを要求する。
C 再度shスクリプト(ssh-askpass-2.sh)が起動され、if文でパスワードが1文字以上あるので
D cat が標準入力からパスワードを読み込み、標準出力へ出す。
E シェルの終了
あとはssh がログオンして指定されたコマンド(sudo shutdown -P now)を実行する