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.