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