我是 Linux 新手。我正在尝试编写一个脚本,用于打印某些内容并启动关机命令。这是我的脚本:
#!/bin/bash
echo Hello WOOOOORRRRRLLLLDDDDDDD
echo sudo poweroff
每次我尝试运行我的脚本时,使用
chmod +x Hello World BASH
或 ./Hello World BASH
但是,我收到此错误消息:
chmod: cannot access 'Hello': No such file or directory
chmod: cannot access 'World': No such file or directory
chmod: cannot access 'BASH': No such file or directory
通常,每次我尝试运行此脚本时,都会弹出“没有此文件或目录”错误消息。我该如何修复此问题?
答案1
由于文件名中包含空格,因此您需要使用引号或转义符,以免空格使其看起来像 3 个不同的文件名:
chmod a+x "Hello World BASH"
"./Hello World BASH"
或者
chmod a+x Hello\ World\ BASH
./Hello\ World\ BASH
答案2
简短回答
按以下顺序运行以下命令:
chmod +x "Hello World BASH"
./"Hello World BASH"
长答案
带空格的文件名必须用引号引起来(使用单引号或双引号)或转义(使用反斜杠),以便 shell 理解它是文件名的一部分。否则,它会在空格处中断并将一个文件名(Hello World BASH
)解释为三个文件名(Hello
、World
和BASH
)
也chmod +x
不会运行脚本,它使脚本可执行。
顺便说一句,如果您没有给定文件的执行权限,您可以调用解释器来运行它:
bash "Hello World BASH"