小编Upg*_*ave的帖子

Bash 文件重定向的工作方式与脚本不同

$ cat test.txt
foo
bar
Run Code Online (Sandbox Code Playgroud)

此 sed 命令将 text.txt 中的第一行替换为“baz”。它从命令行工作正常:

$ sed "1s%.*%baz%" "test.txt" > "test.txt"
$ cat test.txt
baz
bar
Run Code Online (Sandbox Code Playgroud)

我希望能够将该 sed 命令放入如下命名的脚本中test.sh

#!/bin/sh
sed "1s%.*%baz%" "test.txt" > "test.txt"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行./test.sh它时,它会从 text.txt 中删除所有行(text.txt 被完全清空)?!

有任何想法吗?

bash sed

1
推荐指数
1
解决办法
283
查看次数

标签 统计

bash ×1

sed ×1