[解決済み】Bash関数の戻り値
2022-03-24 06:41:51
質問
私はbashスクリプトで作業しており、戻り値を表示する関数を実行したい。
function fun1(){
return 34
}
function fun2(){
local res=$(fun1)
echo $res
}
を実行すると
fun2
と表示され、quot;34" と表示されません。なぜこのような現象が起こるのでしょうか。
解決方法は?
Bashには
return
文で指定できるのは、関数自身の
exit
の間の値)。
0
と
255
0は成功の意味)。そのため
return
は、あなたが望むものではありません。
を変換した方がいいかもしれません。
return
ステートメントを
echo
そうすれば、関数の出力は
$()
中括弧は、まさにあなたが望んでいるものだと思います。
以下はその例です。
function fun1(){
echo 34
}
function fun2(){
local res=$(fun1)
echo $res
}
戻り値を取得する別の方法(0〜255の整数を返すだけなら)としては
$?
.
function fun1(){
return 34
}
function fun2(){
fun1
local res=$?
echo $res
}
また、戻り値を使ってブール論理を使うことができることに注意してください。
fun1 || fun2
が実行されるのは
fun2
もし
fun1
は非
0
の値を指定します。 デフォルトの戻り値は、関数内で最後に実行された文の終了値です。
関連
-
[解決済み] Bashで文字列から改行を削除する方法
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】シェルスクリプトで整数式が期待されるエラーが発生する
-
[解決済み] Homebrewは最新ですが、`could not link` + `delete path` のエラーは気にしなくていいのでしょうか?
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] パイプと二重パイプのどちらの OR 演算子を使うか?
-
[解決済み] bashでのDiffコマンド
-
[解決済み] IPアドレスのまとめ方
-
[解決済み] Bashスクリプトの'''抜け'''がある] [クローズド]
-
[解決済み] Bash関数にパラメータを渡す
-
[解決済み] Bash関数から文字列値を返す方法
-
[解決済み] シェルスクリプトで呼び出された関数から値を返す