我正在 ubuntu 21.10 上制作这个 bash 安装脚本。我本来打算测试一下第一个部分,但遇到了这个错误。
/tmp/geany_run_script_GBYCG1.sh: 7: ./install sauerbraten 2020: Permission denied
(program exited with code: 126)
Press return to continue
这是到目前为止的脚本。
#!/bin/bash
DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"
function error {
echo -e "\\e[91m$1\\e[39m"
exit 1
}
wget https://sourceforge.net/projects/sauerbraten/files/sauerbraten/2020_11_29/sauerbraten_2020_12_29_linux.tar.bz2/download
#tar -xf
出了什么问题,我该如何解决?
答案1
该错误不是来自您的 bash 脚本,而是来自 Geany 用于执行文件的 shell 包装脚本(当您按 F5 或选择构建->执行菜单项)。
默认的Geany执行操作是"./%f"
获取文件名并将其包装在/tmp
类似的脚本中
#!/bin/sh
rm $0
cd '/home/username'
"./name of your file"
echo "
------------------
(program exited with code: $?)"
echo "Press return to continue"
#to be more compatible with shells like dash
dummy_var=""
read dummy_var
错误来自该脚本的第 7 行,即
"./name of your file"
并且只是表明该文件./install sauerbraten 2020
由于其权限位而无法执行 - 可能没有为您的用户设置可执行位。你可以用以下方法修复它
chmod +x "./install sauerbraten 2020"