Bashのマニュアルには次のように記載されています。
eval [arg ...]
The args are read and concatenated together into a single com-
mand. This command is then read and executed by the shell, and
its exit status is returned as the value of eval. If there are
no args, or only null arguments, eval returns 0.
頑張る
eval `nonsense`
echo $?
明らかになる0
。
そして、バックティックコマンドを単独で実行すると、次のようになります。
`nonsense`
echo $?
明らかになる127
。
eval
Bashのマニュアルに書かれている内容によれば、パラメータとして与えられるとバックティックを返したいと思います。127
nonsense
パラメータの終了ステータスを取得するにはeval
?
ベストアンサー1
以下を行うとき -
`nonsense`
echo $?
基本的には、「不可能なコマンドの出力を取得しようとしたときに終了ステータスを教えてください」と尋ねられ、答えは「コマンドが見つかりません」または127です。
しかし、次のようにすると
eval `nonsense`
echo $?
eval
「空の文字列を評価するときにevalの終了状態を教えてください」(意味のないコマンドの出力)と尋ねることは、引数なしで実行するのと同じです。
eval
パラメータなしで実行すると問題はなく、終了ステータスは0になります。