Kabuk betiklerini exec komutu kullanımı nelerdir?
Herkes bunu basit bir örnekle kabuk betik exec komutu kullanır ne olduğunu açıklayabilir mi?
CEVAP
exec dahili komut çekirdek fonksiyonları aynalar, genellikle C olarak adlandırılan bir execve dayalı bir aile vardır
exec forking yeni bir süreç olmadan geçerli sürecindeki mevcut programı değiştirir. Yazdığınız her komut, bir şey değil, ama bazı durumlarda çok işe yarıyor. Burada kullanılan bazı senaryolar;
Kullanıcı kabuk erişimi olmayan belirli bir uygulama programı çalıştırmak istiyoruz. Oturum programı /etc/passwd değiştirebiliriz, ama belki ortam-başlangıç dosyaları alınmasını istiyoruz. Yani (diyelim ki)
.profilegeçen deyim gibi bir şey diyor:exec appln-programşimdi geri dönmek için kabuk yoktur. Eğer öyleyse
appln-programçökerse bile, kullanıcı bitemez -execorada yerini değil, çünkü bir kabuk./Etc/farklı bir kabuk passwd kullanmak istiyoruz. Aptalca gelebilir, ama bazı sitelerde kullanıcılar giriş onların kabuk değiştirmek için izin vermez. Herkes
cshve herkes sadece başlangıç olduğunu biliyorum bir site.loginstart-up dosyası csh () onların çağrısı 14 ** koyun. O çalışırken,cshbaşıboş bir süreç çalışan sol, ve çıkış kafa karıştırıcı olabilecek iki sahne oldu. Yani biz değiştiexec kshsadece yerine c kabuk programı korn kabuk, ve yapılan her şey daha basit (başka konularda bu gibi aslında o kadarkshbir giriş kabuğu).İşlemler kaydetmek için sadece.
prog1 -> prog2 -> prog3 -> prog4vb çağırıyoruz. ve bir daha da geri gidiyor, sonra her çağrı bir exec olun. Kaynaklar (fazla söylenecek bir şey değil. kaydeder ve kapatma simplier yapar sürece mükerrer).
Belli ki exec yere kullanılan gördünüz, belki de Eğer seni rahatsız eden kod göstersen kullanımı haklı olabiliriz.
Edit: Cevabım yukarıda eksik olduğunu fark ettim. Vardırikiksh bash - dosya tanıtıcı açmak için kullanılan gibi kabukları exec kullanır. İşte bazı örnekler:
exec 3< thisfile # open "thisfile" for reading on file descriptor 3
exec 4> thatfile # open "thatfile" for writing on file descriptor 4
exec 8<> tother # open "tother" for reading and writing on fd 8
exec 6>> other # open "other" for appending on file descriptor 6
exec 5<&0 # copy read file descriptor 0 onto file descriptor 5
exec 7>&4 # copy write file descriptor 4 onto 7
exec 3<&- # close the read file descriptor 3
exec 6>&- # close the write file descriptor 6
Aralığı çok önemli olduğunu unutmayın. Eğer fd numarasını ve yeniden yönlendirme sembol arasında bir boşluk sonra koyarsanız exec asıl anlamı geri döner:
exec 3 < thisfile # oops, overwrite the current program with command "3"
Örneğin ksh kullanın read -u bash print -u, bu kullanabilirsiniz birkaç yolu vardır:
read <&3
echo stuff >&4

Nasıl bir komut çıktısı her satırı kab...
Bozulana kadar tekrar tekrar kabuk kom...
Nw.js Parantez-Kabuk ve Elektron arası...
Java linux kabuk komutu çağırmak istiy...
Nasıl MSBuild içinde Exec Komutu tırna...