まず私の状況を説明します。 .bashrcにエイリアスがあります。
doscript () { ssh root@server$1 -p2202 "bash -s" < ~/scripts/$2 $3; }
デフォルトでは、複数のタスクで構成されたスクリプトがあります。たとえば、次のようになります。
check current settings
read comment
do actions
write $comment in a file
restart service
だからコマンドを実行します。
doscript server scriptname parameter
ただし、「コメントを読む」セクションは機能しません。私がコメントを入力するのを待たずにコメントファイルに何も追加せずに、すぐにコメントを実行します。
この場合、変数を入力する方法はありますか?
ベストアンサー1
あまり変更を加えずにこれを行う一般的な方法は、ファイルをリモートでコピーしてからstdinをtty入力に使用できるようにすることです。例えば
scp -P 2202 ~/scripts/$2 root@server$1:./myscript
ssh -t root@server$1 -p2202 bash ./myscript $3
scp
または、ラインを次に交換できない場合
ssh root@server$1 -p2202 'cat >./myscript' <~/scripts/$2