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

  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012
  • KliptOut KwazeeKilla

    KliptOut Kwa

    24 ŞUBAT 2010
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008