UnixのEvalコマンド

UnixのEvalコマンド

誰かがこのコードを変換できますか?私はこれをインターネットから得た。

最初は、コマンドのパラメータの1つがプラス記号(+)またはマイナス記号(-)です。しかし、今追加する必要があるので(これ以上パラメータにはない)、自動的に追加したいと思います。

-|+) eval '(('jd2=${jd1}${5}${6}'))'
jd2date $jd2

ベストアンサー1

コードはこんな感じですか?

case "$5" in
    -|+) eval '(('jd2=${jd1}${5}${6}'))' jd2date $jd2 
esac

その場合は、次のようにコマンドを呼び出すことができます。

script arg1 arg2 arg3 arg4 + 6

または

script arg1 arg2 arg3 arg4 - 10

コードは次のように作成できます。

 eval '(('jd2=${jd1}+${5}'))' jd2date $jd2 

コマンドは次のように呼び出されます。

script arg1 arg2 arg3 arg4 10

${5}、、、${6}および${jd1}$jd2その変数の内容に置き換えられます。数値変数(たとえば、$5および$6)は次のとおりです。位置パラメータ

もはや変数に演算子を配置する必要はないので、 eval呼び出す必要はありません。コードは次のとおりです。

 (( jd2=${jd1}+${5} ))
 jd2date $jd2

または少し簡潔な構文を使用してください。

 (( jd2 = jd1 + $5 ))
 jd2date $jd2

おすすめ記事