Vraag Wat is / usr / bin / [?


Ik was alleen aan het rondneuzen in / usr / bin en ik vond een ELF binair bestand genaamd [. /usr/bin/[. Ik heb nog nooit van dit bestand gehoord en mijn eerste gedachte was dat het een slimme manier was om een ​​programma te verbergen, mogelijk een trojan. Het is echter aanwezig op al mijn CentOS-servers en lijkt geen handmatige invoer te hebben. Ik kan een gok wagen wat het is, maar ik was op zoek naar een meer gezaghebbend antwoord ...


19
2018-05-05 19:04


oorsprong




antwoorden:


Het is een alternatieve vorm van het 'test'-commando. Meestal gebruikt in scripts.

d.w.z.

if [ $VAR ]
then
    echo $VAR exists!
fi

21
2018-05-05 19:07



Maar in tegenstelling tot de test vereist het laatste arg een a] - Florian Diesch
[  is een bash gebouwd, maar dat is het ook test. niet alle schelpen zijn gelijk gemaakt - in veel van hen, test (en [) zijn niet gebouwd. - Mo.
Er is een bash ingebouwd, of althans, mijn systeem doet alsof het is. [--help geeft andere invoer dan / usr / bin / [--help - Matt Simmons
test en [zijn gebouwd om te bashen, maar niet noodzakelijkerwijs alle andere shells. U kunt tijdelijk van het pad af en een bash-script uitvoeren dat een van beide gebruikt en u zult zien dat het script nog steeds werkt. - Zoredache
@Josh: eens in de zoveel millennia had de Bourne-schelp niet de testoperator ingebouwd. Het was een normale opdracht zoals alle andere; en / bin / test was gekoppeld aan / bin / [om notional convenience te geven. - Jonathan Leffler


Het is wat je noemt wanneer je zoiets gebruikt

if [ -e foo ]; then ...

in een shellscript (maar de meeste shells hebben het tegenwoordig als een buildin). man test zou je de documenten moeten geven.


7
2018-05-05 19:08



Ik zou je antwoord accepteren, maar Zypher verslaat je met een paar seconden ... Sorry :-) - Josh


Zoals anderen hebben opgemerkt, [ is het conditionele evaluatieprogramma van de shell - test.

In feite is daar een handleidingpagina voor!

$ man [

zou je meer details moeten geven over de vierkante openingshaak.

Btw, in OS X, [ ligt in /bin/[ :)


0
2018-04-21 16:00