Bir program─▒n bir Bash beti─činden gelip gelmedi─či nas─▒l kontrol edilir?


Al─▒nan cevaba git


Bir program─▒n, bir hata d├Ând├╝recek ve ├ž─▒kacak veya komut dosyas─▒na devam edecek ┼čekilde var oldu─čunu nas─▒l do─črular─▒m?

Kolay olmal─▒ gibi g├Âr├╝n├╝yor, ama beni g├╝d├╝k ediyordu.


2007









Cevap say─▒s─▒n─▒ say: 30






Cevap

POSIX uyumlu:

 command -v <the_command>
 

─░├žin bash belirli ortamlarda:

 hash <the_command> # For regular commands. Or...
type <the_command> # To check built-ins and keywords
 

a├ž─▒klama

Ka├ž─▒n─▒n which . Bu sadece (anlam builtins gibi ├žok az yap─▒yor kald─▒n f─▒rlatma harici s├╝re├ž sensin hash , type ya command bir yol ucuzdur) d─▒┼č komutlar─▒ etkileri kolayca de─či┼čebilir ederken, ayn─▒ zamanda, asl─▒nda ne istedi─činizi yapmak yerle┼čikleri g├╝venebilirsiniz sistemden sisteme.

Neden umursuyorsun?

  • Bir├žok i┼čletim sistemleri var which oldu─čunu bile bir ├ž─▒k─▒┼č durumunu ayarlamak gelmez , yani if which foo orada bile ├žal─▒┼čmaz ve olacak her zaman rapor foo o (baz─▒ POSIX kabuklar─▒ i├žin yapmas─▒n─▒ g├Âr├╝nen notu olmasa bile, var olan hash ├žok).
  • Bir├žok i┼čletim sistemi which , ├ž─▒kt─▒s─▒n─▒ de─či┼čtirmek veya hatta paket y├Âneticisine ba─člamak gibi ├Âzel ve k├Ât├╝ ┼čeyler yapar.

Yani kullanmay─▒n which . Bunun yerine bunlardan birini kullan─▒n:

 $ command -v foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed.  Aborting."; exit 1; }
$ type foo >/dev/null 2>&1 || { echo >&2 "I require foo but it's not installed.  Aborting."; exit 1; }
$ hash foo 2>/dev/null || { echo >&2 "I require foo but it's not installed.  Aborting."; exit 1; }
 

(K├╝├ž├╝k yan not: baz─▒lar─▒ 2>&- ayn─▒ olacakt─▒r 2>/dev/null ancak daha k─▒sad─▒r - bu do─čru de─čildir . 2>&- FD 2'yi kapat─▒r ve programda stderr'e yazmaya ├žal─▒┼čt─▒─č─▒nda programda hataya neden olan FD 2'yi kapat─▒r; (ve tehlikeli!))

E─čer hash banginiz /bin/sh o zaman POSIX'in ne dedi─či ile ilgilenmelisiniz. type ve hash ├ž─▒k─▒┼č kodlar─▒ POSIX taraf─▒ndan ├žok iyi tan─▒mlanmad─▒ hash ve komut olmad─▒─č─▒nda ba┼čar─▒yla ├ž─▒kt─▒─č─▒ g├Âr├╝ld├╝ (bunu hen├╝z g├Ârmedim type ). command 'nin ├ž─▒k─▒┼č durumu POSIX taraf─▒ndan iyi tan─▒mlanm─▒┼čt─▒r, bu nedenle kullan─▒m─▒ muhtemelen en g├╝venli olan─▒d─▒r.

Senaryonuz kulland─▒─č─▒ takdirde bash de, POSIX kurallar─▒ meselesi art─▒k ger├žekten yok ve her iki type ve hash kullan─▒m─▒na tamamen g├╝venli hale gelir. type ┼čimdi var -P sadece arama yapmak PATH ve hash komutun konumu muhtemelen asl─▒nda amac─▒yla varl─▒─č─▒n─▒ kontrol kulland─▒─č─▒m─▒zdan genellikle iyi bir ┼čey oldu─ču, (daha h─▒zl─▒ arama dahaki sefere bunu kullanmak i├žin) karma olaca─č─▒n─▒ yan etkisi yoktur .

Basit bir ├Ârnek olarak, gdate varsa, ├žal─▒┼čan bir i┼člev , aksi takdirde date :

 gnudate() {
    if hash gdate 2>/dev/null; then
        gdate "[email protected]"
    else
        date "[email protected]"
    fi
}
 

2772







A┼ča─č─▒dakiler bir komutun var olup olmad─▒─č─▒n─▒ $PATH ve ├žal─▒┼čt─▒r─▒labilir olup olmad─▒─č─▒n─▒ kontrol etmenin ta┼č─▒nabilir bir yoludur :

 [ -x "$(command -v foo)" ]
 

├ľrnek:

 if ! [ -x "$(command -v git)" ]; then
  echo 'Error: git is not installed.' >&2
  exit 1
fi
 

Y├╝r├╝t├╝lebilir denetim, gerekli adda ├žal─▒┼čt─▒r─▒labilir bir dosya bulunmazsa bash ├žal─▒┼čt─▒r─▒lamaz bir dosya d├Ând├╝rd├╝─č├╝ i├žin gereklidir $PATH .

Ayr─▒ca, ├žal─▒┼čt─▒r─▒labilir dosyayla ayn─▒ adda ├žal─▒┼čt─▒r─▒labilir olmayan bir dosya daha ├Ânce mevcutsa $PATH , sonuncunun ├žal─▒┼čt─▒r─▒lsa bile, dash'in ├Âncekini d├Ând├╝rd├╝─č├╝n├╝ unutmay─▒n. Bu bir hatad─▒r ve POSIX standard─▒n─▒ ihlal ediyor. [ Hata raporu ] [ Standart ]

Ayr─▒ca, arad─▒─č─▒n─▒z komut takma ad olarak tan─▒mland─▒ysa bu ba┼čar─▒s─▒z olur.


462







Kullan─▒m─▒ndan vazge├žmek i├žin lhunath ile ayn─▒ fikirdeyim which ve ├ž├Âz├╝m├╝ BASH kullan─▒c─▒lar─▒ i├žin tamamen ge├žerli . Bununla birlikte, daha ta┼č─▒nabilir command -v olmas─▒ i├žin yerine kullan─▒lacakt─▒r:

 $ command -v foo >/dev/null 2>&1 || { echo "I require foo but it's not installed.  Aborting." >&2; exit 1; }
 

Komut command POSIX uyumludur, ├Âzelli─či i├žin buraya bak─▒n: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html

Not: type POSIX uyumludur ancak type -P de─čildir.


200







Benim .bashrc de tan─▒ml─▒ bir i┼člevi var, bu kolayla┼čt─▒r─▒r.

 command_exists () {
    type "$1" &> /dev/null ;
}
 

─░┼čte nas─▒l kullan─▒ld─▒─č─▒na bir ├Ârnek (benden .bash_profile .)

 if command_exists mvim ; then
    export VISUAL="mvim --nofork"
fi
 

86







$PATH De─či┼čkendeki dizinlerden birinde var olup olmad─▒─č─▒n─▒ bilmek veya mutlak konumunu bilmek isteyip istemedi─činize ba─čl─▒d─▒r . $PATH De─či┼čkenin i├žinde olup olmad─▒─č─▒n─▒ bilmek istiyorsan─▒z ,

 if which programname >/dev/null; then
    echo exists
else
    echo does not exist
fi
 

aksi takdirde kullan─▒n

 if [ -x /path/to/programname ]; then
    echo exists
else
    echo does not exist
fi
 

/dev/null/ ─░lk ├Ârnekte yap─▒lan y├Ânlendirmeler which program─▒n ├ž─▒kt─▒s─▒n─▒ bast─▒rmaktad─▒r .


74







@ Lhunath'─▒n ve @ GregV'nin cevaplar─▒n─▒ geni┼čleterek, i┼čte bu ├žeki kolayca ifade etmek isteyenlerin kodu if :

 exists()
{
  command -v "$1" >/dev/null 2>&1
}
 

─░┼čte nas─▒l kullan─▒laca─č─▒:

 if exists bash; then
  echo 'Bash exists!'
else
  echo 'Your system does not have Bash'
fi
 

34







Kullanmay─▒ deneyin:

 test -x filename
 

veya

 [ -x filename ]
 

Ko┼čullu ─░fadeler alt─▒ndaki bash sayfas─▒ndan :

  -x file
          True if file exists and is executable.
 

21







Kullanmak i├žin hash oldu─ču gibi, @lhunath anla┼č─▒laca─č─▒ bir bash komut:

 hash foo &> /dev/null
if [ $? -eq 1 ]; then
    echo >&2 "foo not found."
fi
 

Bu komut dosyas─▒ ├žal─▒┼č─▒r hash ve ard─▒ndan en son komutun ├ž─▒k─▒┼č kodunun i├žinde depolanan de─čerin $? e┼čit olup olmad─▒─č─▒n─▒ kontrol eder 1 . E─čer hash bulamazsa foo , ├ž─▒k─▒┼č kodu olacakt─▒r 1 . Varsa foo , ├ž─▒k─▒┼č kodu olacakt─▒r 0 .

&> /dev/null Standart hatay─▒ ve standart ├ž─▒kt─▒s─▒n─▒, hash ekranda g├Âr├╝nmeyecek ┼čekilde y├Ânlendirir echo >&2 ve mesaj─▒ standart hataya yazar.


16







Eri┼čebilece─čim kutu ├╝zerinde ├žal─▒┼čmak i├žin yukar─▒daki ├ž├Âz├╝mleri hi├ž almad─▒m. Birincisi, t├╝r kuruldu (daha fazlas─▒n─▒ yapar). Bu y├╝zden yerle┼čik y├Ânergeye ihtiya├ž var. Bu komut benim i├žin ├žal─▒┼č─▒yor:

 if [ `builtin type -p vim` ]; then echo "TRUE"; else echo "FALSE"; fi
 

10







Program─▒n varl─▒─č─▒n─▒ kontrol ederseniz, muhtemelen onu daha sonra ├žal─▒┼čt─▒racaks─▒n─▒z. Neden ilk ba┼čta ├žal─▒┼čt─▒rmay─▒ denemiyorsunuz?

 if foo --version >/dev/null 2>&1; then
    echo Found
else
    echo Not found
fi
 

Program─▒n yaln─▒zca PATH dizinlerine ve dosya izinlerine bakmaktan ziyade ├žal─▒┼čt─▒─č─▒ndan daha g├╝venilir bir kontrol.

Ayr─▒ca, program─▒n─▒zdaki s├╝r├╝m├╝ gibi baz─▒ yararl─▒ sonu├žlar elde edebilirsiniz.

Tabii ki dezavantajlar─▒, baz─▒ programlar─▒n ba┼člat─▒lmas─▒n─▒n a─č─▒r olabilece─či ve baz─▒lar─▒n─▒n --version hemen (ve ba┼čar─▒yla) ├ž─▒kma se├žene─činin bulunmad─▒─č─▒d─▒r.


8


2013-07-08





Birden fazla ba─č─▒ml─▒l─▒─č─▒ kontrol et ve durumu son kullan─▒c─▒lara bildir

 for cmd in latex pandoc; do
  printf '%-10s' "$cmd"
  if hash "$cmd" 2>/dev/null; then
    echo OK
  else
    echo missing
  fi
done
 

├ľrnek ├ž─▒kt─▒:

 latex     OK
pandoc    missing
 

10 Maksimum komut uzunlu─čuna ayarlay─▒n . Otomatik de─čil ├ž├╝nk├╝ ayr─▒nt─▒l─▒ bir POSIX yapman─▒n bir yolunu g├Âremiyorum: Bo┼čluktan ayr─▒lan bir tablonun s├╝tunlar─▒n─▒ Bash'de nas─▒l hizalayabilirim?


8







hash foo 2>/dev/null : zsh, bash, ├žizgi ve k├╝l ile ├žal─▒┼č─▒r.

type -p foo : zsh, bash ve ash (busybox) ile ├žal─▒┼č─▒yor gibi g├Âr├╝n├╝yor, ancak ├žizgi de─čil ( -p bir arg├╝man olarak yorumlan─▒yor ).

command -v foo : zsh, bash, tire ile ├žal─▒┼č─▒r, ancak k├╝lle de─čil (me┼čgul kutusu) ( -ash: command: not found ).

Ayr─▒ca ve builtin ile kullan─▒lamad─▒─č─▒n─▒ da unutmay─▒n . ash dash


6







Neden yapabilirseniz Bash yerle┼čiklerini kullanm─▒yorsunuz?

 which programname
 

...

 type -P programname
 

5


2009-03-24





─░lgilenenler i├žin, y├╝kl├╝ bir k├╝t├╝phane tespit etmek istiyorsan─▒z yukar─▒daki y├Ântemlerin hi├žbiri i┼če yaramaz. Fiziksel olarak yolu (potansiyel olarak ba┼čl─▒k dosyalar─▒ vb. ─░├žin) kontrol etmekten veya bunun gibi bir ┼čeyi (Debian tabanl─▒ bir da─č─▒t─▒mdaysan─▒z) b─▒rakt─▒─č─▒n─▒z─▒ hayal ediyorum:

 dpkg --status libdb-dev | grep -q not-installed

if [ $? -eq 0 ]; then
    apt-get install libdb-dev
fi
 

Yukar─▒dan g├Ârebilece─činiz gibi, sorgudan gelen "0" cevab─▒ paketin kurulu olmad─▒─č─▒ anlam─▒na gelir. Bu "grep" in bir i┼člevidir - "0", e┼čle┼čmenin bulunmad─▒─č─▒, "1" e┼čle┼čmenin bulunmad─▒─č─▒ anlam─▒na gelir.


4







which Komut yararl─▒ olabilir. hangi adam

Y├╝r├╝t├╝lebilir dosya bulunursa 0, ├žal─▒┼čt─▒r─▒labilir de─čilse veya ├žal─▒┼čt─▒r─▒lamazsa 1 de─čerini d├Ând├╝r├╝r:

 NAME

       which - locate a command

SYNOPSIS

       which [-a] filename ...

DESCRIPTION

       which returns the pathnames of the files which would be executed in the
       current environment, had its arguments been  given  as  commands  in  a
       strictly  POSIX-conformant  shell.   It does this by searching the PATH
       for executable files matching the names of the arguments.

OPTIONS

       -a     print all matching pathnames of each argument

EXIT STATUS

       0      if all specified commands are found and executable

       1      if one or more specified commands is  nonexistent  or  not  exe-
          cutable

       2      if an invalid option is specified
 

├çal─▒┼čt─▒r─▒labilir ortamda ├žal─▒┼čt─▒r─▒labilir ├žal─▒┼čt─▒r─▒labilir olup olmad─▒─č─▒n─▒ anl─▒yor olmas─▒ g├╝zel bir ┼čey - birka├ž sorun kazand─▒r─▒r ...

-Adam


3







Sarkma nedeniyle portatif ve% 100 g├╝venilir bir yol olmad─▒─č─▒n─▒ s├Âyleyebilirim alias . ├ľrne─čin:

 alias john='ls --color'
alias paul='george -F'
alias george='ls -h'
alias ringo=/
 

Tabii ki sadece sonuncusu problemli (Ringo'ya al─▒nma!) Ama hepsi alias bak─▒┼č a├ž─▒s─▒ndan ge├žerli command -v .

Gibi sarkan olanlar─▒ reddetmek ringo i├žin, kabu─čun yerle┼čik alias komutunun ├ž─▒kt─▒s─▒n─▒ ayr─▒┼čt─▒rmal─▒ ve bunlara tekrar girmeliyiz ( buradan command -v daha ├╝st├╝n de─čildir alias .) Bunun i├žin ta┼č─▒nabilir bir ├ž├Âz├╝m yoktur ve hatta Bash'e ├Âzg├╝ bir ├ž├Âz├╝m olduk├ža zahmetlidir. .

Bunun gibi bir ├ž├Âz├╝m├╝n ko┼čulsuz olarak reddedece─čini unutmay─▒n alias ls='ls -F'

 test() { command -v $1 | grep -qv alias }
 

2







Bash'in taklit etmek type -P cmd i├žin POSIX uyumlu kullanabilirsiniz env -i type cmd 1>/dev/null 2>&1 .

 man env
# "The option '-i' causes env to completely ignore the environment it inherits."
# In other words, there are no aliases or functions to be looked up by the type command.

ls() { echo 'Hello, world!'; }

ls
type ls
env -i type ls

cmd=ls
cmd=lsx
env -i type $cmd 1>/dev/null 2>&1 || { echo "$cmd not found"; exit 1; }
 

1


2011-06-01





Hash varyant─▒n─▒n bir tuza─č─▒ vard─▒r: Komut sat─▒r─▒nda ├Ârne─čin yazabilirsiniz

 one_folder/process
 

i┼člem y├╝r├╝tmek. Bunun i├žin one_folder ├Â─česinin ├╝st klas├Âr├╝ $ PATH konumunda olmal─▒d─▒r . Ancak bu komutu kullanmaya ├žal─▒┼čt─▒─č─▒n─▒zda, daima ba┼čar─▒l─▒ olacakt─▒r:

 hash one_folder/process; echo $? # will always output '0'
 

1







Ikinci "command -v" kullan─▒m─▒. ├ľrne─čin b├Âyle:

 md=$(command -v mkdirhier) ; alias md=${md:=mkdir}  # bash

emacs="$(command -v emacs) -nw" || emacs=nano
alias e=$emacs
[[ -z $(command -v jed) ]] && alias jed=$emacs
 

1







Kullan─▒labilir bir harici type komut yoksa ( burada verildi─či gibi ), POSIX uyumlu kullanabiliriz env -i sh -c 'type cmd 1>/dev/null 2>&1' :

 # portable version of Bash's type -P cmd (without output on stdout)
typep() {
   command -p env -i PATH="$PATH" sh -c '
      export LC_ALL=C LANG=C
      cmd="$1" 
      cmd="`type "$cmd" 2>/dev/null || { echo "error: command $cmd not found; exiting ..." 1>&2; exit 1; }`"
      [ $? != 0 ] && exit 1
      case "$cmd" in
        *\ /*) exit 0;;
            *) printf "%s\n" "error: $cmd" 1>&2; exit 1;;
      esac
   ' _ "$1" || exit 1
}

# get your standard $PATH value
#PATH="$(command -p getconf PATH)"
typep ls
typep builtin
typep ls-temp
 

En az─▒ndan Mac OS X 10.6.8'de Bash 4.2.24 (2) kullanarak command -v ls bir ta┼č─▒nmaya uymuyor /bin/ls-temp .


1







debian sunucusu i├žin kurulumum. Birden ├žok paket ayn─▒ ad─▒ i├žerdi─činde bir sorun ya┼čad─▒m. ├Ârne─čin apache2. ├Âyleyse bu benim ├ž├Âz├╝m├╝md├╝.

 function _apt_install() {
    apt-get install -y $1 > /dev/null
}

function _apt_install_norecommends() {
    apt-get install -y --no-install-recommends $1 > /dev/null
}
function _apt_available() {
    if [ `apt-cache search $1 | grep -o "$1" | uniq | wc -l` = "1" ]; then
        echo "Package is available : $1"
        PACKAGE_INSTALL="1"
    else
        echo "Package $1 is NOT available for install"
        echo  "We can not continue without this package..."
        echo  "Exitting now.."
        exit 0
    fi
}
function _package_install {
    _apt_available $1
    if [ "${PACKAGE_INSTALL}" = "1" ]; then
        if [ "$(dpkg-query -l $1 | tail -n1 | cut -c1-2)" = "ii" ]; then
             echo  "package is already_installed: $1"
        else
            echo  "installing package : $1, please wait.."
            _apt_install $1
            sleep 0.5
        fi
    fi
}

function _package_install_no_recommends {
    _apt_available $1
    if [ "${PACKAGE_INSTALL}" = "1" ]; then
        if [ "$(dpkg-query -l $1 | tail -n1 | cut -c1-2)" = "ii" ]; then
             echo  "package is already_installed: $1"
        else
            echo  "installing package : $1, please wait.."
            _apt_install_norecommends $1
            sleep 0.5
        fi
    fi
}
 

1







├çal─▒┼čmak ve sa├žlar─▒n─▒z─▒ s─▒rt─▒n─▒zdan ├ž─▒karmak i├žin yukar─▒da veya alt─▒ndaki ┼čeyleri alam─▒yorsan─▒z, ayn─▒ komutu kullanarak ├žal─▒┼čt─▒rmay─▒ deneyin bash -c . Sadece ┼ču somnambular delirium'a bak─▒n, $ (sub-command) komutunu ├žal─▒┼čt─▒rd─▒─č─▒n─▒zda ger├žekte olan ┼čey ┼čudur:

─░lk. Size tamamen farkl─▒ ├ž─▒kt─▒lar verebilir.

 $ command -v ls
alias ls='ls --color=auto'
$ bash -c "command -v ls"
/bin/ls
 

─░kinci. Size hi├ž ├ž─▒kt─▒ veremez.

 $ command -v nvm
nvm
$ bash -c "command -v nvm"
$ bash -c "nvm --help"
bash: nvm: command not found
 

1







E─čer bir program varsa kontrol etmek istiyorum ve ger├žekten bir program de─čil, bir bash yerle┼čik komutu , o zaman command , type ve hash olmayan komutlar yerle┼čik i├žin onlar gibi t├╝m return 0 ├ž─▒k─▒┼č durumu test etmek i├žin benimsedikleri g├Âr├╝lm├╝┼čt├╝r.

├ľrne─čin , zaman i├žinde yerle┼čik komuttan daha fazla ├Âzellik sunan bir zaman program─▒ vard─▒r . Program─▒n var olup olmad─▒─č─▒n─▒ kontrol etmek i├žin a┼ča─č─▒daki ├Ârnekteki gibi kullanman─▒z─▒ ├Âneririm : which

 # first check if the time program exists
timeProg=`which time`
if [ "$timeProg" = "" ]
then
  echo "The time program does not exist on this system."
  exit 1
fi

# invoke the time program
$timeProg --quiet -o result.txt -f "%S %U + p" du -sk ~
echo "Total CPU time: `dc -f result.txt` seconds"
rm result.txt
 

1


2016-06-18





Burada bir s├╝r├╝ se├ženek var ama h─▒zl─▒ bir ┼čekilde tek g├Âmlekleri ┼ča┼č─▒rtmad─▒m, senaryomun ba┼č─▒nda kulland─▒─č─▒m ┼čey buydu: [[ "$(command -v mvn)" ]] || { echo "mvn is not installed" 1>&2 ; exit 1; } [[ "$(command -v java)" ]] || { echo "java is not installed" 1>&2 ; exit 1; }

bu, burada se├žilen cevaba ve ba┼čka bir kayna─ča dayanmaktad─▒r (ve birazc─▒k oynuyorum).

Bu di─čerleri i├žin kullan─▒┼čl─▒ olaca─č─▒n─▒ umuyorum.


1







Program─▒n var olup olmad─▒─č─▒n─▒, konumuna g├Âre s├Âyleyecektir.

 if [ -x /usr/bin/yum ]; then
    echo This is Centos
fi
 

1







git CI sunucumuzu da─č─▒tman─▒n bir par├žas─▒ olarak kurulup kurulmad─▒─č─▒n─▒ kontrol etmek zorunda kald─▒m . Son bash beti─čim a┼ča─č─▒daki gibiydi (Ubuntu server):

 if ! builtin type -p git &>/dev/null; then
  sudo apt-get -y install git-core
fi
 

Umar─▒m bu ba┼čka birine yard─▒m eder!


0







Bunu kullan─▒yorum ├ž├╝nk├╝ ├žok kolay:

 if [ `LANG=C type example 2>/dev/null|wc -l` = 1 ];then echo exists;else echo "not exists";fi
 

veya

 if [ `LANG=C type example 2>/dev/null|wc -l` = 1 ];then
echo exists
else echo "not exists"
fi
 

Bir komut bulunmazsa stdout'a kabuk yerle┼čik ve program eko ÔÇőÔÇődurumunu, di─čer el taraf─▒ndan stderr i├žin hi├žbir ┼čey kullanmaz, sadece stderr i├žin yank─▒ yapar.


0


2015-09-22





Senaryo

 #!/bin/bash

# Commands found in the hash table are checked for existence before being
# executed and non-existence forces a normal PATH search.
shopt -s checkhash

function exists() {
 local mycomm=$1; shift || return 1

 hash $mycomm 2>/dev/null || \
 printf "\xe2\x9c\x98 [ABRT]: $mycomm: command does not exist\n"; return 1;
}
readonly -f exists

exists notacmd
exists bash
hash
bash -c 'printf "Fin.\n"'
 

Sonu├ž

 Ôťś [ABRT]: notacmd: command does not exist
hits    command
   0    /usr/bin/bash
Fin.
 

0







komut -v POSIX_BUILTINS se├žene─či <command> s─▒namak i├žin ayarlanm─▒┼čsa ├žal─▒┼č─▒r , ancak ba┼čar─▒s─▒z olursa ba┼čar─▒s─▒z olabilir. (Y─▒llarca benim i├žin ├žal─▒┼čt─▒, ancak son zamanlarda i┼če yaramad─▒─č─▒ bir yere ko┼čtu).

A┼ča─č─▒dakileri daha fazla hataya dayan─▒kl─▒ buluyorum:

 test -x $(which <command>)
 

3 ┼čeyi test etti─či i├žin: yol, varl─▒k ve uygulama izni.


0







 checkexists() {
    while [ -n "$1" ]; do
        [ -n "$(which "$1")" ] || echo "$1": command not found
        shift
    done
}
 

-1



─░lgili yay─▒nlar


JavaScript'te fonksiyon olup olmad─▒─č─▒n─▒ nas─▒l kontrol edebilirim?

├ľ─čenin g├Âr├╝n├╝r DOMÔÇÖda olup olmad─▒─č─▒ nas─▒l kontrol edilir?

Bir kabuk komut dosyas─▒nda komut olup olmad─▒─č─▒n─▒ kontrol etme? [├žift]

Bir lambda ifadesi kullanarak eleman olup olmad─▒─č─▒n─▒ kontrol etmek nas─▒l?

Python'da verilen bir ├Âdemeyle ilgili bir i┼člem olup olmad─▒─č─▒n─▒ kontrol etmek nas─▒l?

URL verilen resmin olup olmad─▒─č─▒n─▒ nas─▒l kontrol edebilirim?

ÔÇťHangi yakutÔÇŁ: Program─▒n $ PATH cinsinden yakuttan olup olmad─▒─č─▒n─▒ kontrol etme

Javascript kullanarak nesnede de─čer olup olmad─▒─č─▒n─▒ kontrol etme

Program─▒n hata ay─▒klama simgeleriyle derlenip derlenmedi─či nas─▒l kontrol edilir? [├žift]

FtpWebRequest'ten ├Ânce dosyan─▒n FTP'de olup olmad─▒─č─▒n─▒ kontrol etme

Etiketle ilgili di─čer sorular [bash]


Git'in izlenen ancak ┼ču an .gitignore'da olan bir dosyay─▒ ÔÇťunutmas─▒n─▒ÔÇŁ nas─▒l sa─člar?

Dize tarih saatine d├Ân├╝┼čt├╝rme

Bir nesnenin t├╝r├╝n├╝ belirleme?

++ [[]] [+ []] + [+ []] neden ÔÇť10ÔÇŁ dizesini d├Ând├╝r├╝yor?

PHP'de ┼čifre ├ž├Âzme i├žin bcrypt nas─▒l kullan─▒l─▒r?

Vim'deki remap, noremap, normal harita ve vnoremap haritalama komutlar─▒ aras─▒ndaki fark nedir?

JSLint aniden rapor veriyor: ÔÇťuse strictÔÇŁ i┼člev bi├žimini kullan─▒n

Git'te bir dosyan─▒n ne zaman silindi─čini bulun

XML'deki bir Etkinlik i├žin ba┼čl─▒k ├žubu─čunu varolan ├Âzel temayla gizleme

─░ki enlem-boylam noktas─▒ aras─▒ndaki mesafeyi hesapla? (Haversine form├╝l├╝)