如何使脚本可执行?

如何使脚本可执行?

我是 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)解释为三个文件名(HelloWorldBASH

chmod +x不会运行脚本,它使脚本可执行。

顺便说一句,如果您没有给定文件的执行权限,您可以调用解释器来运行它:

bash "Hello World BASH"

相关内容