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.
` 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 ||
).