Syntaxe prostředí: Jak správně používat \ k dělení řádků? [duplicate]

Tato otázka již má odpověď zde :

Komentáře

  • Tento příklad funguje pro mě; co získáte?
  • @JeffSchaller Omlouvám se, objasnil jsem to. Mám na mysli to, že „je potřeba pro některé věci, ale ne pro jiné. Chci jen vědět, jak to správně používat. A z nějakého zvláštního důvodu \ nemůže být v komentářích zvýrazněn hvězdičkou
  • \ je explicitní pokračování; bash vám dá PS2, pokud příkaz ještě není kompletní. Je to zmatek?
  • Nejsem si jistý, zda se jedná o zcela duplikát, alespoň jak je požadováno v nadpisu. Ačkoli se OP ptá v kontextu & &, je stále dostatečně obecná, je možné uvést komplexnější odpověď, která není konkrétní k tomu.

Odpověď

Pokud by byl výrok bez pokračování správný, musíte použít \. Následující text tedy funguje bez zpětného lomítka, protože příkaz nelze ukončit &&:

echo 1 && echo 2 

Zde potřebujete zpětné lomítko:

echo 1 2 3 \ 4 

nebo

echo 1 \ && echo 2 

Jinak bash provede příkaz ihned po zpracování prvního řádku bez čekání na další.

Komentáře

  • Takže " pokračování " je termín, který jsem hledal. Bashův manuál to vysvětluje v sekci Citace, takže jsem to našel … Nyní jste řekl, že jeden může = „64d84d9814″>

t ukončí řádek s && a zobrazí výzvu PS2. Jaké jsou další případy ? Existuje někde v příručce bash seznam?

Odpověď

Jeden z pokynů pro styl skriptování I “ Během svého profesního života ve velké IT společnosti, se kterým jsem se setkal, mě zavázalo použít číslo delší než 80 znaků na řádek v shellovém skriptu a odsazení po přerušení řádku. Také jsem musel přerušit linku před rourou nebo & & nebo ||. Líbí se:

command1 \ && command2 \ || command3 \ | command4 

Cílem bylo mít jasnou čitelnost.

Komentáře

  • Udělal jsem to také, dokud někdo nepoukázal na to, že můžete vynechat \ pokud vložíte & &, || a | na předchozím řádku: Ještě lepší čitelnost.
  • @ole yup to mám, ale pokud je třeba dodržet vodítko, můj kód by ' t neprošel zkontrolovat, jestli to ' udělám
  • +1. Mám tendenci používat styl zmíněný @OleTange (alespoň pro dlouhé nebo komplikované příkazy) – ale styl, který zmiňujete, má jasnou výhodu, že můžete vidět, o jaké pokračování jde, pouze při pohledu pouze na samotný řádek, nemusíte ' se také nemusím dívat na konec předchozího řádku. Pěkný. ' nejsem si jistý, jestli se mi to líbí natolik, abych se přinutil změnit své návyky, ale líbí se mi to.
  • Upřímně řečeno, raději bych dal = „124d1ea413″>

a || na začátku řádků. Stejně jako jsem vložil OR a AND na začátek řádků do svých klauzulí WHERE.

  • IMO, v konzistenci je obrovská výhoda. Pokud v některých případech MUSÍTE použít ` and in other cases it is optional, I would prefer to use `všude, kde můj příkaz pokračuje na dalším řádku. Při skenování skriptu vám může snadno uniknout, že řádek pokračuje, protože končí && nebo || nebo |. (A jak říká @ErikE, ve skutečnosti dávám přednost tomu, abych na dalším řádku měl své && a ||).
  • Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *