📌  相关文章
📜  bash 文件可从终端运行,但不能从桌面文件运行 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:37.555000             🧑  作者: Mango

Bash 文件可从终端运行,但不能从桌面文件运行 - Shell-Bash

在Shell-Bash中,我们可以通过编写脚本文件的方式来实现一些自动化操作。脚本文件一般以.sh为后缀,可以通过在终端中运行来执行脚本文件的内容。例如:

#!/bin/bash
echo "Hello World!"

上述脚本文件可以通过在终端中输入以下命令来执行:

./hello.sh

但是有些程序员可能会遇到这样的问题:将脚本文件从终端中复制到桌面,用鼠标双击打开却发现无法运行。这是因为桌面文件没有运行权限,需要我们手动添加运行权限。我们可以通过以下命令在终端中为脚本文件添加运行权限:

chmod +x ~/Desktop/hello.sh

添加成功后,我们就可以通过双击桌面的hello.sh文件来运行脚本了。

但是需要注意的是,有些程序员可能会在脚本文件的开头加入以下代码:

#!/bin/bash
cd "$(dirname "$0")"

这段代码的作用是将当前工作目录切换到脚本文件所在的目录,这样脚本中的相对路径会更加准确。但是这样的话,如果我们通过双击桌面文件的方式来运行脚本,脚本文件所在的目录会变成桌面的目录,这显然不是我们想要的结果。

因此,我们应该在编写脚本文件时,尽量避免使用cd命令或者使用绝对路径来代替相对路径,这样即使我们在桌面文件中运行脚本,也能够保证脚本能够正常运行。

综上所述,虽然bash文件可以从终端运行,但需要注意的是在桌面运行时需要手动添加运行权限,并且要避免使用cd命令或绝对路径来代替相对路径。