[解決済み] ssh / リモートbashコマンドでシングルクォート文字をエスケープするにはどうすればよいですか?
2022-02-16 13:04:06
質問
リモートでプロセスの開始、停止、状態をチェックするための小さなスクリプトのセットを作っています。このスクリプトは
stop
これらのスクリプトのうち、あるプロセスを探し、それを殺す必要があります。したがって、私はそうする。
ssh deploy@hera 'kill -9 `ps -ef | grep MapReduceNode | grep -v "grep" | awk -F " " '{print $2}' | head -n 1`'
ここでの問題は、awk のトークン化ステップでシングルクォートを必要とし、これが ssh 経由のリモートコマンドを実行する際に利用されるシングルクォートと衝突してしまうことです。これらのシングルクォートをどのようにエスケープすればよいのでしょうか?
解決方法は?
使用方法
ssh deploy@hera 'kill -9 `ps -ef | grep MapReduceNode | grep -v "grep" | awk -F " " '"'"'{print $2}'"'"' | head -n 1`'
説明する。
ssh deploy@hera 'kill -9 `ps -ef | grep MapReduceNode | grep -v "grep" | awk -F " " '"'"'{print $2}'"'"' | head -n 1`'
> 1 <>2<> 3 <>4<> 5 <
1) コマンドの先頭を表す文字列。
'kill -9 `ps -ef | grep MapReduceNode | grep -v "grep" | awk -F " " '
2) 2つ目の文字列に「」が1つだけある場合。
"'"
3) 3つ目の文字列をprintコマンドで表示。
'{print $2}'
4) 4番目の文字列にもう1つのシングルクォートを付ける。
"'"
5) 5番目の文字列とコマンドの残り。
' | head -n 1`'
関連
-
[解決済み] curl: 引数リストが長すぎる
-
[解決済み] IPアドレスのまとめ方
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] 新しい鍵を作成せずに、SSH鍵のパスフレーズを削除するにはどうすればよいですか?
-
[解決済み] 一重引用符で囲まれた文字列の一重引用符をエスケープするには
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのif条件で「unary operator expected」エラーが発生する。
-
[解決済み】 -bash: 予期しないトークン「改行」付近での構文エラー
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] Bashスクリプトで引数を反復処理する方法
-
[解決済み] ssh / リモートbashコマンドでシングルクォート文字をエスケープするにはどうすればよいですか?
-
[解決済み] bashでjsonファイルを解析するためにjqの出力からダブルクオートを削除する方法は?
-
[解決済み] echoコマンドでパイピングが効かない [重複]。
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] findコマンドと一緒に使用するとエラー 'rm: missing operand' が発生する。
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。