使用 run-parts 命令运行脚本时修复“执行格式错误”

当我试图 运行目录中的所有脚本 使用 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

运行部分:执行脚本失败。sh:执行格式错误

要修复“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