English 中文(简体)
如何写在我的 自己的冲洗剧本?
原标题:How write in my own bash script?
  • 时间:2012-05-23 17:11:22
  •  标签:
  • 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脚本吗?

问题回答
cat "$SCRIPT" | ... > "$SCRIPT"

不要这样做。 它只会导致痛苦和痛苦。 如果您可以帮助, 不要写自定义的代码“ 坚固” 。 但是如果有必要, 请先写到临时文件, 然后再重新命名 。

使用临时文件可以拯救局势:

#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

但真正有趣的是,如果有办法在没有临时文件的情况下解决问题:)





相关问题
Parse players currently in lobby

I m attempting to write a bash script to parse out the following log file and give me a list of CURRENT players in the room (so ignoring players that left, but including players that may have rejoined)...

encoding of file shell script

How can I check the file encoding in a shell script? I need to know if a file is encoded in utf-8 or iso-8859-1. Thanks

Bash usage of vi or emacs

From a programming standpoint, when you set the bash shell to use vi or emacs via set -o vi or set -o emacs What is actually going on here? I ve been reading a book where it claims the bash shell ...

Dynamically building a command in bash

I am construcing a command in bash dynamically. This works fine: COMMAND="java myclass" ${COMMAND} Now I want to dynamically construct a command that redirectes the output: LOG=">> myfile.log ...

Perform OR on two hash outputs of sha1sum

I want perform sha1sum file1 and sha1sum file2 and perform bitwise OR operation with them using bash. Output should be printable i.e 53a23bc2e24d039 ... (160 bit) How can I do this? I know echo $(( ...

Set screen-title from shellscript

Is it possible to set the Screen Title using a shell script? I thought about something like sending the key commands ctrl+A shift-A Name enter I searched for about an hour on how to emulate ...

热门标签