あるスクリプトを別のスクリプトとして構成する

あるスクリプトを別のスクリプトとして構成する

以下を実行するスクリプトがある場合

    [alice]$ math
    Enter a number: 5

    Number squared: 25
    Number divided: 1
    Number to power of 3: 125

数学スクリプトの出力をテーブルとして構成しますが、複数の引数を使用して「除数」を表示しない別のスクリプトを作成したいと思います。例えば

   [alice]$ newprogram 5 10

   *
   *Number    squared    power of 3
    5         25         125
    10        100        1000     

また、数学スクリプトは/home/alice新しいプログラムが配置されています/home/user。この問題にどのように対処する必要がありますか?

ベストアンサー1

私を見て回答既存のスクリプトにパラメータを渡す方法の詳細については、前の質問を参照してください。この出力の解析は、前の出力よりも難しいでしょう。

新しいバージョンをスクリプト化する方がはるかに簡単です。このようにナンセンスを解析することは主なPITAです。

以下は、無関係な出力(ヘッダーなど)を印刷する元のエラーを繰り返すことなくこれを行うバージョンです。

#! /bin/bash

for i in "$@" ;  do
   printf "%i\t%i\t%i\n" $i $(($i * $i)) $(($i * $i *$i))
done

-v以下は、(verbose)オプションを使用している場合にオプションでタイトルを印刷するバージョンです。

#! /bin/bash

verbose=0

while getopts "v" opt ; do
  case "$opt" in
      v) verbose=1 ;;
   esac
done

shift "$((OPTIND-1))"

[ "$verbose" = "1" ] && printf "%s\t%s\t%s\n" 'Number' 'Squared' 'Power of 3'

for i in "$@" ;  do
   printf "%i\t%i\t%i\n" $i $(($i * $i)) $(($i * $i *$i))
done

おすすめ記事