怎么写我自己的bash脚本?

时间:2012-05-23 17:11:23

标签: bash

我有一个bash脚本,想在其中写一些内容以供下次使用:

#this get the full path of the script
SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/$(basename $0)"

NUMBER=10

#This change only in the first occurrence 
cat "$SCRIPT" | sed "1,/NUMBER=../s/NUMBER=../NUMBER=$((NUMBER + 1))/" > "$SCRIPT"

我遇到的问题是它产生一个空文件。我可以在您自己的代码中覆盖我的bash脚本吗?

2 个答案:

答案 0 :(得分:4)

cat "$SCRIPT" | ... > "$SCRIPT"

不要这样做。它只会导致痛苦和痛苦。如果可以提供帮助,请不要编写自我修改代码 。但如果必须,请先写入临时文件,然后重命名。

答案 1 :(得分:1)

使用临时文件可以保存这种情况:

#this get the full path of the script
SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/$(basename $0)"

NUMBER=10

#This change only in the first occurrence 
sed "1,/NUMBER=../s/NUMBER=../NUMBER=$((NUMBER + 1))/" "$SCRIPT" > temp.tmp
cat temp.tmp > "$SCRIPT"
rm temp.tmp

但如果没有临时文件可以解决问题,那真的很有意思:)