[解決済み] bashスクリプトを一行ずつ実行するには?
2022-09-25 03:04:57
質問
もし私が bash -x と入力すると、すべての行が表示されます。しかし、スクリプトは正常に実行されます。
どうすれば一行ずつ実行できるのでしょうか?
どうすれば一行ずつ実行できるのでしょうか。同じ効果を
read
を各行に入れることです。
どのように解決するのですか?
everylineにreadを入れる必要はなく、bashスクリプトに以下のようなトラップを追加するだけで、例えば以下のように効果があります。
#!/usr/bin/env bash
set -x
trap read debug
< YOUR CODE HERE >
bash v4.2.8 と v3.2.25 でテストしたところ、動作しました。
改良版
スクリプトがファイルからコンテンツを読み込んでいる場合、上記のリストは機能しません。回避策としては、以下の例のようになります。
#!/usr/bin/env bash
echo "Press CTRL+C to proceed."
trap "pkill -f 'sleep 1h'" INT
trap "set +x ; sleep 1h ; set -x" DEBUG
< YOUR CODE HERE >
スクリプトを停止するには 他のシェルから終了させる をする必要があります。
アルタネイティブ1
もし、単にスクリプトの次のコマンドに進む前に数秒待ちたいだけなら、次の例が役に立つでしょう。
#!/usr/bin/env bash
trap "set +x; sleep 5; set -x" DEBUG
< YOUR CODE HERE >
trapコマンド内にset +xとset -xを追加して、出力が読みやすくなるようにしています。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bash関数にパラメータを渡す
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
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のシンタックスエラー:予期しないファイルの終わり
-
[解決済み] Bashスクリプトをデバッグするにはどうしたらいいですか?[クローズド]
-
[解決済み] Makefileでシェルコマンドを使用する方法
-
[解決済み] Ansibleで新しいユーザーとパスワードを作成する
-
[解決済み] set -u` による Bash による空の配列展開
-
[解決済み] bashを使って関数の出力を変数に代入するにはどうすればよいですか?
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] bashで端末の最終行を削除して置換するには?
-
[解決済み] bash で文字列をエスケープするコマンド