无法打开 bash 脚本中的任何文件:没有这样的文件或目录

can't open any files in bash script: no such file or directory

我正在尝试在 ubuntu 20.04 上的 bash 脚本中打开一个文本文件。 bash 脚本如下所示:

#!/bin/bash

"gedit /home/usr/textfile.txt"

当 运行 bash 脚本时,我得到以下输出:

./test.sh: line 3: gedit /home/usr/textfile.txt: No such file or directory

在终端中手动输入命令时,一切正常。我试过使用多种不同的 shebang,但这没有帮助。我想这一定是一个相当明显的错误。

"gedit /home/usr/textfile.txt" 是一个字符串而不是执行字符串的命令名称,您可以执行 $("gedit /home/usr/textfile.txt") 或删除引号

#!/bin/bash

gedit /home/usr/textfile.txt

您要在 shell 脚本中输入的任何命令都不应该像上面显示的那样带有引号。尝试:

#!/bin/bash
set -euxo pipefail
gedit /home/usr/textfile.txt

-euxo pipefail 真的很有帮助,我将它包含在我所有的 shell 脚本中。您可以在此处找到有关它的更多信息,https://transang.me/best-practice-to-make-a-shell-script/

此外,由于您正在编写文件脚本,因此您可能想要添加一个 sed 命令来搜索和编辑或添加一个 echo 来编辑脚本中的文件。

read -r -d '' /home/usr/textfile.txt << EOF
Hello new line
EOF