スクリプトが実行されるたびに列を追加します。

スクリプトが実行されるたびに列を追加します。

次のスクリプトがあります。

#!/bin/bash
# This shell script is to tabulate and search for SR
n=0 # Initial value for Sl.No
next_n=$[$n+1]
read -p "Enter your SR number : " SR
echo -e "$next_n\t$SR\t$(date)" >> /tmp/cases.txt

初めてスクリプトを実行すると、次のように入力されます SR = 123

1  123   <date>

スクリプトを再実行して、次のようなSR = 456結果を得たいと思います。

1 123 <date>
2 456 <date>

しかし、私のスクリプトは再初期化中なので、常に列1を印刷1,1,1,1しますn。新しいSR値に対してスクリプトが実行されるたびに、列1を自動的に1倍増やす方法はありますか?

ベストアンサー1

次のように、ファイルの最後の行の最初の列の値を読み取ることができます。

#!/bin/bash
# This shell script is to tabulate and search for SR
next_n=$(($(tail -n1 /tmp/cases.txt 2>/dev/null | cut -f1) + 1))
read -p "Enter your SR number : " SR
echo -e "$next_n\t$SR\t$(date)" >> /tmp/cases.txt

cut -f1タブで区切られた一連の文字である行の最初のフィールドを選択します。

これは、ファイルが空であるか存在しない場合でも機能します。next_nこの場合は1に設定します。

おすすめ記事