shell 文件 1.sh 內容以下:shell
num=1 let num++ echo $num
如何使下次運行的時候,num 能使用上次的計算值?code
這裏不採用外部文件存儲,試着用重定向更新腳本自己。
既然要修改本身,先要獲得自身路徑。awk
path="$(dirname "$0")"
awk -v num=$num '/^num=[0-9]/{gsub("[0-9]+",num)} {print}' 1.sh
#!/bin/sh num=1 let num++ cd "$(dirname "$0")" awk '/^num=[0-9]/{gsub("[0-9]+",num)} {print >self}' num=$num self="$0" "$0"
固然用 sed -i 也能夠,這裏用註釋定位待修改位置變量
number=5 #SAVE_NUMBER let number++ sed -i "0,/.*#SAVE_NUMBER/s/.*#SAVE_NUMBER/number=$number #SAVE_NUMBER/" $0