Waarom een ​​shell-opdracht starten met een backslash?

Waarom begint het commando met \?
Dit is de site waar ik het heb gezien.


Antwoord 1, autoriteit 100%

alias curl='curl --some --default --options'

Als u een alias heeft voor curlen u wilt deze niet gebruiken, kunt u een backslash ervoor plaatsen om de alias uit te schakelen en de curl-binary rechtstreeks uit te voeren.

Merk op dat dit alleen van toepassing is op een interactieve shell. Aliassen hebben geen effect in scripts, dus daar zou het niet nodig zijn.


Antwoord 2, autoriteit 84%

De (Bourne/POSIX) shell-specificatiezegt dat aliasvervangingin een interactieve shell wordt onderdrukt wanneer een willekeurig teken van het opdrachtwoord wordt aangehaald. Een backslash is een manier om dat te doen, maar er zijn ook andere bekende manieren om te citeren: enkele en dubbele aanhalingstekens. Al het volgende onderdrukt aliasvervanging:

\curl
 cur\l
 \c\u\r\l
 "c"url
 "curl"
 "c""u""r""l"
 'curl'
 'cu'"rl"

Het gebruik van \curlis de meest gebruikelijke en leesbare manier. Aangezien dit een gestandaardiseerde functie is, kun je verwachten dat deze in alle Bourne-erfgoed-shells werkt.

\curllijkt een beetje op een TeX-commando, nietwaar? 🙂

Other episodes