105.1標準
現在のBashにbackup関数が定義済みである。
以後起動する子Bashでも同じ関数を利用可能にする。
Bash固有の適切なコマンドはどれか。
× 不正解
export -f NAMEはBash関数をエクスポートし、子Bashが環境から関数定義を復元できるようにする。POSIX一般の機能ではない。
詳細解説
誤り
export backup同名変数をexportする指定で、関数属性を対象にしない。
誤り。-fなしのexportは変数名前空間を対象とし、同名関数を子へ渡す指定ではない。
正しい
export -f backup指定Bash関数を子Bashへ継承できるようexportする。
正しい。-fがfunctionを意味し、子Bashが環境からbackup関数を取り込めるようにする。
誤り
alias backupaliasを表示するだけで、関数を子へ渡さない。
誤り。現在のaliasを表示するだけで、alias自体も通常は子シェルへ継承されない。
誤り
set -f backup-fはパス名展開の無効化で、関数exportではない。
誤り。set -fはnoglobを有効化し、後続backupを関数名としてexportしない。
実際に確かめる
一時的な検証環境で実行できる例です。
bash --noprofile --norc -c 'backup(){ printf "function-ok\n"; }; export -f backup; bash --noprofile --norc -c backup'期待される結果
function-ok理解のポイント
- -fはfunction
- 子Bashへ継承
- Bash固有
確認時の注意
- 確認環境: GNU Bash 5.2 / 一時子Bash
基礎のおさらい
Bash固有
関数exportは環境を介したBash間の機能で、一般的な外部プログラムが関数を利用できるわけではない。
代替
永続的に共有するなら、子Bashが読む設定ファイルへ関数定義を置く方法もある。
問題IDKP-105-613
確認環境GNU Bash 5.2 / 一時子Bash
最終技術確認2026-08-13
誤り・権利侵害を報告