Sorun bash dosyası yürütme

5 Cevap php

Orada HI!

Birleştirmek için öğrenirken bazı sorun haline çalıştırmak. Sh dosyaları ve PHP. Bir dosya test.sh oluşturmak ettik ve bu dosyada ben test.php adında bir PHP dosyasını arayın.

Ben. Sh dosyasının üzerine çift tıkladığınızda, o mükemmel çalışır ama terminalden çalıştırmak çalıştığınızda "komut bulunamadı" olsun. Benim. Sh dosyası olarak tam klasörde değilim ama alışkanlık iş. İşte benim test.sh bulunuyor:

#!/bin/bash
LIB=${0/%cli/}
exec php -q ${LIB}test.php one two three
exit; 

Ben test.sh dosyasının üzerine çift zaman o Suppost bu gibi argv dizi döndürür. Ama neden ben terminalden çalıştırmak değil mi?

5 Cevap

kullanmak ./filename.sh

olursa olsun sizin vermeden aynı klasöre ya da değil, iseniz. / sistem yolunu değişkeni arıyor. (/ Böylece bin /, / usr / bin ve)

Bit destekli yürütmek mi?

chmod +x test.sh

Sizin $ PATH değişkeni dahil olmayabilir. ' - Yani kabuk çalıştırmak için komut bulmak mümkün olmayabilir.

Diğerleri söylediler, sh. / File.sh çalışacak ...

Bu Terminali'ne başlatırken ve bir çift tıklama ile başlatma zaman ortam farklı olması mümkündür. Anlaşma ne olduğunu görmek için Terminali'nden which php ve echo $PATH yürütmeyi deneyin.

EDIT 1
As others have noted, if your "command not found" is referring to the shell script and not php, then you probably forgot to include the "./" before the name of the script (i.e. ./test.sh). Also, don't forget to make it executable by invoking chmod a+x test.sh. The reason for this is that PATH does not include the current directory (i.e. "."), because doing so would be a security risk (e.g. folders with a ton of files in them including a fake "ssh" which could then intercept your password or the like).

EDIT 2
Also, I don't know about you, but ${0/%cli/} is evaluating to -bash from within my Terminal. Are you sure that's what you wanted it to expand to? Perhaps you should specify the exact filename.

Başka bir seçenek (makinenizde sh bash değil ve komut bashims kullanıyorsa, ya da bash) sh ile çalıştırmak için

sh filename.sh
bash filename.sh

Bu dosya çalıştırılabilir veya $ PATH olup olmadığını çalışacak