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

  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006
  • theKGB65

    theKGB65

    24 Aralık 2007
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011