GNU/Linux >> Belajar Linux >  >> Linux

Perbaiki "Kesalahan format Exec" Saat Menjalankan Skrip Dengan Perintah run-parts

Saat saya mencoba menjalankan semua skrip di direktori menggunakan perintah run-parts, saya menemukan kesalahan - "run-parts:failed to exec script.sh:Exec format error" . Skrip bekerja dengan baik ketika saya langsung menjalankannya seperti "./script.sh" dan "sh script.sh". Tetapi mereka tidak berfungsi ketika saya menjalankannya dengan perintah run-parts. Bagi mereka yang bertanya-tanya, perintah run-parts akan menjalankan semua skrip dalam direktori. Jika Anda mendapatkan error seperti ini saat menjalankan skrip, tip cepat ini akan membantu Anda memperbaiki "Exec format error" saat menjalankan skrip dengan perintah run-parts di Linux.

Perbaiki "Exec format error" Saat Menjalankan Skrip Dengan Perintah run-parts

Untuk menjalankan semua skrip di folder Documents, saya menjalankan:

$ run-parts --regex '^s.*\.sh

Saya mendapat pesan kesalahan berikut:

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

run-parts:gagal menjalankan script.sh:Kesalahan format Exec

Untuk memperbaiki "Kesalahan format Exec", Anda perlu menambahkan shebang di awal skrip Anda sehingga kernel akan tahu cara menjalankannya. Bagi mereka yang bertanya-tanya, shebang adalah urutan karakter yang terdiri dari karakter tanda angka dan tanda seru (#! ) di awal naskah. Saat Anda menambahkan shebang di awal file teks, itu ditafsirkan sebagai file yang dapat dieksekusi.

Kebanyakan skrip dimulai dengan shebang. Berikut adalah beberapa contoh shebang yang khas.

Cangkang Bourne , atau shell yang kompatibel:

#!/bin/sh

Bas:

#!/bin/bash

Perl:

#!/usr/bin/perl

Python 2.x:

#!/usr/bin/python

Python 3.x:

#!/usr/bin/python3

Inilah yang kami sebut shebang.

Sekarang, mari kita kembali ke topik. Edit skrip Anda menggunakan editor favorit Anda:

$ nano Documents/ostechnix.sh

Tambahkan shebang berikut di awal skrip:

#!/bin/sh

Perbaiki "Kesalahan format Exec" Saat Menjalankan Skrip Dengan run-parts

Sekarang Anda dapat menjalankan skrip dengan perintah run-parts tanpa masalah menggunakan perintah run-parts.

Pembaruan:

Sebagai salah satu pembaca kami Mr.Danesh disebutkan di bagian komentar di bawah, Alih-alih mengkodekan jalur penerjemah, mis.

#!/usr/bin/python3

Kita dapat menggunakan:

#!/usr/bin/env python3

Ini lebih portabel jika penerjemah diinstal di beberapa direktori (non-default) lain. env adalah perintah shell untuk Linux dan sistem operasi mirip Unix. Ini sering digunakan oleh skrip shell untuk meluncurkan penerjemah yang benar.

Anda juga dapat menggunakan ShellCheck utilitas untuk menemukan masalah dalam skrip shell Anda.

  • ShellCheck – Utilitas Gratis Untuk Menemukan Bug di Skrip Shell Anda
UnduhPanduan Gratis:“Panduan Skrip Bash Lanjutan”

Semoga membantu.


Linux
  1. Bekerja dengan Input Output dan Error Redirection di Linux

  2. Perbaiki FirewallD tidak menjalankan kesalahan di Linux Mint 12

  3. Sarankan Pemasangan Paket Saat Menjalankan Perintah yang Tidak Tersedia

  1. Cara memperbaiki kesalahan Perintah tidak ditemukan di Linux

  2. [OpenStack-Devstack]:Kesalahan:Layanan n-net tidak berjalan saat menjalankan stack.sh

  3. Menjalankan Jalur yang Dapat Dieksekusi Dengan Nama Yang Sama Dengan Fungsi yang Ada?

  1. Shell Script Wrapper Untuk Mencegah Menjalankan Perintah Tanpa Argumen?

  2. Bagaimana Memperbaiki Kesalahan Koneksi wget Menolak ketika saya berada di belakang Proxy

  3. Praktik terbaik saat menjalankan Node.js dengan port 80 (Ubuntu/Linode)