[JM:01083] bashマニュアルifコマンドの終了ステータスについて改善提案

Back to archive index

Jiro Matsuzawa jmats****@gnome*****
2015年 1月 2日 (金) 13:04:21 JST


松澤です。

bashマニュアルの以下のifコマンド自体の終了ステータスの翻訳について改善の提案です。

原文:
  The exit status is the exit status of the last command executed, or
zero if  no  condition tested true.

現状の翻訳:
  終了ステータスは最後に実行されたコマンドの終了ステータスですが、 真と評価された条件が全くない場合には 0 となります。

提案1:
  終了ステータスは最後に実行されたコマンドの終了ステータスとなります。どの条件も真と評価されず、コマンドが全く実行されなかった場合、終了ステータスは
0 となります。

提案2:
  終了ステータスは最後に実行されたコマンドの終了ステータスとなります。コマンドが全く実行されなかった場合は、真と評価された条件が全くなければ、終了ステータスは
0 となります。


提案のポイントは、現状の翻訳だと、真と評価された条件が全くない場合は、最終コマンドの有無に関わらず0が必ず返るようにも解釈できてしまう、ということです。たとえば、どの条件も真とならずにelse内のコマンドが実行された場合に、最終コマンドの終了ステータスが返るのか、0が返るのか曖昧だということです。原文では、",
or..."となっており、実行されたコマンドがなければ0が返るということが論理的に明確になっています。

提案の訳文について、個人的に提案1が好みですが、原文の構成とちょっと異なるので嫌う人も多いかと想像します。
提案2は、原文の構成により近づけています。元訳にも近いと思います。
上記の曖昧さがなくなれば、最終的にどういう訳文になるかはあまりこだわっていません。

参考までに実際の挙動例としては、
$ if false; then :; fi; echo $?
0
$ if false; then :; else false; fi; echo $?
1

$ bash --version
GNU bash, version 4.2.53(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

以上です。

-- 
Jiro Matsuzawa
Email: jmats****@gnome*****
GPG Key ID: 0xECC442E9



linuxjm-discuss メーリングリストの案内
Back to archive index