当我试图 运行目录中的所有脚本 使用 run-parts 命令,我遇到了一个错误 – “运行部件:执行 script.sh 失败:执行格式错误”. 当我像“./script.sh”和“sh script.sh”一样直接执行它们时,这些脚本工作得很好。 但是当我使用 run-parts 命令运行它们时它们不起作用。 对于那些想知道的人,run-parts 命令将运行目录中的所有脚本。 如果您在运行脚本时遇到这样的错误,这个快速提示将帮助您在 Linux 中使用 run-parts 命令运行脚本时修复“Exec 格式错误”。
使用 run-parts 命令运行脚本时修复“执行格式错误”
要运行 Documents 文件夹中的所有脚本,我运行:
$ run-parts --regex '^s.*.sh$' Documents
我收到以下错误消息:
run-parts: failed to exec Documents/script1.sh: Exec format error run-parts: Documents/script1.sh exited with return code 1 run-parts: failed to exec Documents/script2.sh: Exec format error run-parts: Documents/script2.sh exited with return code 1 run-parts: failed to exec Documents/script3.sh: Exec format error run-parts: Documents/script3.sh exited with return code 1 run-parts: failed to exec Documents/script4.sh: Exec format error run-parts: Documents/script4.sh exited with return code 1
要修复“Exec格式错误”,您需要添加一个 舍邦 在脚本的开头,这样内核就会知道如何运行它们。 对于那些想知道的人来说,shebang 是由字符组成的字符序列 数字符号 和 感叹号 (#!) 在脚本的开头。 当您在文本文件的开头添加 shebang 时,它会被解释为可执行文件。
大多数脚本都以 shebang 开头。 以下是一些典型的 shebang 示例。
伯恩贝壳,或兼容的外壳:
#!/bin/sh
重击:
#!/bin/bash
珀尔:
#!/usr/bin/perl
Python 2.x:
#!/usr/bin/python
Python 3.x:
#!/usr/bin/python3
这就是我们所说的shebang。
现在,让我们回到主题。 使用您喜欢的编辑器编辑您的脚本:
$ nano Documents/ostechnix.sh
在脚本的开头添加以下shebang:
#!/bin/sh