$ 127 cinsinden getiri değerinin anlamı nedir? UNIX.
$ 127 cinsinden getiri değerinin anlamı nedir? UNIX.
Yanıtlar:
127 değeri /bin/sh
, verilen komut PATH
sistem değişkeninizde bulunamadığında ve yerleşik bir kabuk komutu olmadığında döndürülür . Başka bir deyişle, sistem komutunuzu anlamıyor, çünkü aramaya çalıştığınız ikili dosyayı nerede bulacağını bilmiyor.
which [program]
İşletim sisteminin hangi ikili dosyayı kullandığını görmek için kullanmayı deneyebilirsiniz . Boş kalırsa, bir sonraki adım yürütme bitini ve PATH'ı kontrol etmektir.
which
özellikle doğru değildir - takma adlar, kabuk işlevleri, PATH arama notu veya kabuk durumuna dahili diğer faktörler hakkında bilgi sahibi değildir. Kullanmak çok daha iyi type
, tüm bunları bilen bir kabuk yerleşik.
126
( içeriğinden bağımsız olarak) yürütülebilir olmayan bir dosyayı çağırmaya çalıştığımda Permission denied
değil, ( ) 127
alıyorum; benzer şekilde, bir dizini yürütme girişimi de 126
( is a directory
) ile sonuçlanır .
127 - command not found
örnek: $ caat Hata mesajı
bash:
caat: komut bulunamadı
şimdi kullanarak kontrol ediyorsun echo $?
Bir kabuk kuralı, başarılı bir yürütülebilir dosyanın 0 değeriyle çıkması gerektiğidir. Ayrıca bash man sayfasının $ PIPESTATUS ve EXIT STATUS bölümüne bakınız:
For the shell’s purposes, a command which exits with a zero exit status has succeeded. An exit status of zero indicates success. A non-zero exit status indicates failure. When a command terminates on a fatal signal N, bash uses the value of 128+N as the exit status.
If a command is not found, the child process created to execute it returns a status of 127. If a com-
mand is found but is not executable, the return status is 126.
If a command fails because of an error during expansion or redirection, the exit status is greater than
zero.
Shell builtin commands return a status of 0 (true) if successful, and non-zero (false) if an error
occurs while they execute. All builtins return an exit status of 2 to indicate incorrect usage.
Bash itself returns the exit status of the last command executed, unless a syntax error occurs, in
which case it exits with a non-zero value. See also the exit builtin command below.
Özel bir anlamı yoktur, son çıkış işleminin 127 çıkış durumu ile yapılması dışında.
Bununla birlikte, bash (bash'ı kabuk olarak kullandığınızı varsayarak), yürütmeye çalıştığınız komutun yürütülemediğini (yani bulunamadığını) söylemek için de kullanılır. Ne yazık ki, süreç 127. durumdan çıkmışsa veya bulunamazsa, derhal çıkartılamaz.
EDIT:
Konsol çıktı dışında hemen çıkartılamaz, ancak bu yığın taşması, bu yüzden bunu bir komut dosyasında yaptığınızı varsayalım.
Bu hata bazen aldatıcıdır. Dosyalar gerçekten mevcut olsa bile dosyanın bulunmadığını söylüyor. Bunun nedeni, kullandığınız düzenleyicinin neden olabileceği dosyalarda bulunan geçersiz okunamayan özel karakterler olabilir. Bu bağlantı bu gibi durumlarda size yardımcı olabilir.
-bash: ./my_script: / bin / bash ^ M: bozuk yorumlayıcı: Böyle bir dosya veya dizin yok
Bu sorunun olup olmadığını öğrenmenin en iyi yolu, tüm dosyaya basitçe bir yankı ifadesi yerleştirmek ve aynı hatanın atıldığını doğrulamaktır.
Bir komut dosyası dili kullanarak bir program çalıştırmaya çalışıyorsanız, komut dosyası dilinin tam yolunu ve yürütülecek dosyayı eklemeniz gerekebilir . Örneğin:
exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css');
IBM anabilgisayarında JCL, çağrılan unix komut dosyasının adının sonunda fazladan bazı karakterler veya numaralar içeriyorsa, bu tür bir hata verebilir.