Saya menggunakan Ubuntu sejak versi 10.04 dan merasa lebih ramah dibandingkan dengan Windows. Saat ini saya menggunakan 'Precise 12.04`. Saya telah membuat banyak peluncur khusus untuk skrip bash, dan tidak pernah mengalami masalah sampai kemarin.
Saya telah menginstal rangkaian perangkat lunak yang memiliki beberapa executable. abaqus
yang dapat dieksekusi utama terletak di optsoftwaresname
dan merupakan tautan simbolis ke abq610i
yang dapat dieksekusi di /opt/softwaresname/executables/
.
Exe utama abaqus
membutuhkan beberapa argumen baris perintah. Saya menggunakan argumen cae
, (yaitu abaqus cae
) tetapi dengan perintah lain untuk merender grafik dalam mode yang lebih baik, maka panggilan terakhir adalah:XLIB_SKIP_ARGB_VISUALS=1 abaqus cae
Saya membuat alias untuk perintah panjang ini di .bash_rc
file sebagai:
alias abaquscae="XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
Semuanya bekerja dengan baik, karena alias menjalankan perangkat lunak. Menjadi juara malas, saya berpikir untuk membuat peluncur dermaga Kairo untuk ini. Jadi saya memasukkan abaquscae
di kotak "perintah untuk meluncurkan saat klik" dan centang "Jalankan di terminal". Namun yang membuat saya kecewa, setelah mengklik peluncur itu memberikan kesalahan::
There was an error creating the child process for this terminal
Failed to execute child process "abaquscae" (No such file or directory)
Akibatnya saya menulis file skrip bash kecil "abaquscae.sh":
#!/bin/sh
"XLIB_SKIP_ARGB_VISUALS=1 abaqus cae"
dan disimpan, membuatnya dapat dieksekusi dan setelah menjalankannya di bash Shell saya kembali mendapatkan kesalahan yang sama, yaitu :
./abaquscae.sh: 2: ./abaquscae.sh: XLIB_SKIP_ARGB_VISUALS=1 abaqus cae: not found
Sekarang saya benar-benar tersesat, saya telah mencoba banyak trik mis.
1- menghapus koma di skrip bash,
2- menjadikannya dos2unix
,
3- menggunakan path lengkap ke yang dapat dieksekusi
tetapi skrip ini tidak berjalan melalui terminal bash.
MASALAH:
Perintah (serta aliasnya) berfungsi dengan baik di terminal bash, namun ketika dijalankan melalui beberapa saluran lain (mis. skrip/peluncur) terminal gagal mengenalinya ..
Jika ada pakar yang memiliki saran/informasi tentang cara mengatasi masalah ini, silakan bagikan. Saya akan sangat berterima kasih.
Jawaban yang Diterima:
Saya pikir skripnya harus seperti ini:
#!/bin/bash
XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae
Anda juga dapat membuat peluncur menggunakan perintah berikut:
bash -c 'XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae'
Mengatur variabel lingkungan sebelum nama file yang dapat dieksekusi di baris perintah adalah fitur shell CLI (Command Line Interface). Jika Anda memasukkan VARIABLE=value /path/to/executable
di peluncur, program yang membaca peluncur (dan secara efektif meluncurkan yang dapat dieksekusi) akan mencoba menemukan file bernama “VARIABLE=value” dan, tentu saja, akan gagal.
Perintah itu meluncurkan bash
, shell pengguna default di Ubuntu, dan suruh untuk mengeksekusi (-c
option) string “XLIB_SKIP_ARGB_VISUALS=1 /opt/softwaresname/abaqus cae”, sehingga akan ditafsirkan seperti saat Anda mengetiknya di CLI.