[解決済み] BashやShellスクリプトで関数の前方宣言を行うには?
2022-11-27 13:38:56
質問
のようなものはあるのでしょうか?
bash
にあるのでしょうか、あるいは少なくとも、例えば C / C++ でよく知られている forward 宣言のような類似のもの (回避策) があるのでしょうか。
それとも、例えばそれは常に1パス(行と行の間)で実行されるため、そのようなものがありますか?
前方宣言がない場合、私のスクリプトを読みやすくするためにはどうしたらよいでしょうか。これはかなり長く、冒頭のこれらの関数定義は、グローバル変数と混在して、私のスクリプトを醜く、読みにくく/理解しにくくしています)?このような場合のよく知られた/ベストプラクティスを学ぶために質問しているのです。
たとえば
# something like forward declaration
function func
# execution of the function
func
# definition of func
function func
{
echo 123
}
どのように解決するのですか?
いい質問ですね。私はほとんどのスクリプトでこのようなパターンを使用しています。
#!/bin/bash
main() {
foo
bar
baz
}
foo() {
}
bar() {
}
baz() {
}
main "$@"
このコードは上から下へ読むことができますが、実際に実行を開始するのは最後の行からです。そこで
"$@"
を main() に渡すことで、コマンドライン引数にアクセスすることができます。
$1
,
$2
などを、通常と同じように設定します。
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] Bash で +x を表示させずに設定する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Makefileでシェルコマンドを使用する方法
-
[解決済み] Bashで$PATH変数からパスを削除する最もエレガントな方法は何ですか?
-
[解決済み] 実行中のBASHスクリプトのパスを決定する [重複].
-
[解決済み] このbashのフォーク爆弾はどのように機能するのでしょうか?重複
-
[解決済み] すべてのファイルに再帰的にファイル拡張子を追加する
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] Bashでファイル名を一括変更する
-
[解決済み] Bashのバックチックに相当するバッチ
-
[解決済み] .bashrcのエイリアスをvimのシェルコマンドで使用できるようにするには?(:!...)
-
[解決済み] ファイルツリー図の作成に使用するツールについて【終了しました