evalの戻り値

evalの戻り値

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

evalBashのマニュアルに書かれている内容によれば、パラメータとして与えられるとバックティックを返したいと思います。127nonsense

パラメータの終了ステータスを取得するにはeval

ベストアンサー1

以下を行うとき -

`nonsense`
echo $?

基本的には、「不可能なコマンドの出力を取得しようとしたときに終了ステータスを教えてください」と尋ねられ、答えは「コマンドが見つかりません」または127です。

しかし、次のようにすると

eval `nonsense`
echo $?

eval「空の文字列を評価するときにevalの終了状態を教えてください」(意味のないコマンドの出力)と尋ねることは、引数なしで実行するのと同じです。

evalパラメータなしで実行すると問題はなく、終了ステータスは0になります。

おすすめ記事