Shebang çağrıları tespit edilebilir mi?


3

Bir bash betiğinin, üzerinden çalıştırılıp çalıştırılmadığını algılamasının bir yolu var mı? #!/usr/bin/env shebang?
Yazmama izin verecek sihirli bir bash foo:

#!/bin/bash
...
if [ __INVOKED_VIA_USR_BIN_ENV__ ]; then 
  ...

Yerlere erişiminiz var mı env denir Man sayfasına göre, araç aramada ortam değişkenlerini ayarlamanıza izin verir.
Marcus Rickert

Hayır, bu durumda değil. Maalesef ben tamir edemiyorum env Shebang'larda kullanıldığı gibi kontrol etmiyorum. Senaryoyu karıştırmak, senaryo kendini güncellediğinde geri döndürülecekti.
aefxx

Yanıtlar:


3

son şey o env (coreutils'den) mu

execvp (argv[optind], &argv[optind]);

Bu şu demek env diğer programla değiştirilir, böylece kimin başladığını tespit edemezsiniz. Daha fazla bilgi bulabilirsiniz. execvp man sayfası.


Bağlantılar için teşekkürler, Cristian. Görünüşe göre son cevap bu.
aefxx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.