GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan 'Akhir file tak terduga' dan 'kesalahan mengimpor definisi fungsi' menjalankan skrip shell menggunakan qsub

Juga mengalami masalah ini dalam skrip pembungkus yang menggunakan

qsub -shell no -b yes -cwd -V somescript.bash arg1 arg2 etc

jika Anda menggunakannya untuk mengirimkan skrip bash shell lain. Ini menghasilkan

yang mengganggu
/bin/sh: module: line 1: syntax error: unexpected end of file
/bin/sh: error importing function definition for `BASH_FUNC_module'

(ini adalah Sun Grid Engine 211.11 yang berjalan di CentOS 6.6) Ternyata hal-hal diselesaikan dengan hanya meletakkan yang berikut di atas skrip pembungkus (bukan skrip yang dibungkus):

unset module

Itu saja.


Di /usr/share/Modules/init/bash mengomentari baris 'export -f module'.

Dalam shell login normal, modules.sh akan dipanggil dari profile.d sehingga perintah module tersedia. Dalam shell non login, seperti skrip appwrapper, ini hanya sumber file di atas terlebih dahulu.

Umumnya dalam skrip aplikasi setelah mencari file di atas, mereka kembali memberikan perintah "modul memuat aplikasi/vendor/aplikasi" yang berarti sumber tambahan.

Referensi::- http://gridengine.org/pipermail/users/2011-November/002019.html


Untuk beberapa alasan yang tidak saya ketahui menambahkan titik koma di akhir setiap baris memperbaiki masalah.


Linux
  1. Menjalankan File Skrip Melalui Ssh Melalui Sudo?

  2. Menggunakan skrip Apache2Buddy untuk kinerja dan stabilitas

  3. wget vs curl:Cara Mengunduh File Menggunakan wget dan curl

  1. temukan dan salin file menggunakan Bash

  2. FATAL:Kesalahan modul tidak ditemukan menggunakan modprobe

  3. perubahan parameter modul kernel (menggunakan /sys/module)

  1. Salin dan timpa file dalam skrip shell

  2. Kesalahan sintaks:akhir file tidak terduga (mengharapkan saat itu)

  3. Menangkap STDERR dan STDOUT ke file menggunakan tee