SORU
17 EYLÜL 2008, ÇARŞAMBA


Eğer bir fonksiyon bash içinde olup olmadığını belirlemek

Şu anda bash yürütülen bazı birim testleri yapıyorum. Birim testleri başlatıldı ve bir bash betiği içinde temizlenmiş yürütülür. Bu komut genellikle bir init içerir(), yürütme() ve temizleme() işlevleri. Ancak zorunlu değil. Ya da tanımlı değilse test etmek istiyorum.

Daha önce ve kaynak greping seding tarafından bu yaptım, ama yanlış geldi. Daha zarif bir şekilde bunu yapmak için var mı?

Edit: aşağıdaki sniplet bir cazibe gibi çalışır

fn_exists()
{
    type $1 | grep -q 'shell function'
}

CEVAP
17 EYLÜL 2008, ÇARŞAMBA


Bu aradığını düşünüyorum 'türü' komutu. Sana bir şey fonksiyon-fonksiyon dahili olup, dış komut, ya da sadece tanımlı değil anlatacağım. Örnek:

$ type foo
bash: type: foo: not found

$ type ls
ls is aliased to `ls --color=auto'

$ which type

$ type type
type is a shell builtin

$ type -t rvm
function

$ if [ -n "$(type -t rvm)" ] && [ "$(type -t rvm)" = function ]; then echo rvm is a function; else echo rvm is NOT a function; fi
rvm is a function

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014