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

  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009