我正在运行 Debian 8.2 虚拟机并尝试执行名为 install.sh 的文件。
我运行了以下命令:
- sh ./安装.sh
- sh安装.sh
- apt-get install install.sh
上面的前两个命令给了我错误“配置不存在:安装失败”。第三个命令给了我以下输出:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package install.sh
E: Couldn't find any package by regex 'install.sh'
我已经运行 chmod 700 install.sh 以确保该文件可以执行。
我绝对找不到任何有关此类错误的信息。
答案1
如果脚本是 shell 脚本,前两个命令将运行该脚本。但它可能是Python。或者 awk。或者完全不同的外壳。所以为了安全起见,你不需要提及。sh
明确地,因为大多数编写良好的脚本在第一行指定了正确的解释器。
- 使脚本可执行:
chmod a+rx install.sh
- 现在运行它:
./install.sh
答案2
第一个命令是正确的(只要脚本位于当前目录中)。第三条命令还很遥远。第二个将与第一个执行相同的操作。
脚本正在运行:这不是无法运行脚本的错误。脚本中的某些命令失败。但这就是我能告诉你的,因为我不知道剧本里有什么。
您不需要使其可执行即可将其作为sh script_name
.如果它以第一行开头#!…
,那么它被设计为可执行并作为./script_name
.
如果脚本依赖bash
(或其他高级 shell)扩展。那么可能跑不进去sh
要调试脚本(如果是 bash 脚本),您可以将其运行为bash -x script_name
建议不要对可执行文件进行扩展:如果您要使用 python 或 C 重新编写,那么您将必须重命名它。这不是一个好主意。 (如果文件是可执行的,那么它就是可执行的。它负责选择自己的解释器(请参阅#!
))。