Erre a kérdésre már itt van válasz :
Megjegyzések
- A példa nálam működik; mit kapsz?
- @JeffSchaller Sajnálom, világosabbá tettem. Arra gondolok, hogy bizonyos dolgokra “\” szükség van, másokra azonban nem. Csak tudni akarom a megfelelő használatát. Valamilyen furcsa okból \ a csillagokban nem lehet kiemelni a megjegyzésekben
- \ kifejezett folytatás; A bash PS2-t ad, ha a parancs még nem fejeződött be. Ez a zűrzavar?
- Nem vagyok biztos benne, hogy ez elég másolat, legalábbis amint a címben megkérdezték. Bár az OP a & & összefüggésben kérdezi, mégis elég általános, átfogóbb, nem konkrét választ lehet adni erre.
Válasz
Ha az állítás folytatás nélkül helyes lenne, akkor a \
. Ezért a következő visszavonás nélkül működik, mivel “nem fejezhet be egy parancsot &&
-vel:
echo 1 && echo 2
Itt a visszavágás szükséges:
echo 1 2 3 \ 4
vagy
echo 1 \ && echo 2
Egyébként bash az első sor feldolgozása után azonnal végrehajtaná a parancsot, anélkül, hogy megvárná a következőt.
Megjegyzések
- Tehát " folytatás " az a kifejezés, amelyet kerestem. A Bash kézikönyv ezt elmagyarázza az Idézés szakaszban, így találtam ezt … Most azt mondtad, hogy ' nem zár le egy sort
&&
-vel, és aPS2
parancsot adja meg. Melyek a többi esetek ? Van valahol egy lista a bash kézikönyvben?
Válasz
Az egyik szkriptstílus-irányelv I ” A szakmai életem során egy hatalmas informatikai cégnél szembesültem, arra köteleztem, hogy használjam a számot soronként 80 karakternél hosszabb, kagylóban és behúzással a vonal megszakítása után. Ezenkívül meg kellett szakítanom a vonalat egy cső vagy & & vagy || előtt. Mint:
command1 \ && command2 \ || command3 \ | command4
A cél az egyértelmű olvashatóság volt.
Megjegyzések
- én is ezt tettem, mígnem valaki rámutatott, hogy elhagyhatja a \ ha beteszed a & &, || , és | az előző sorban: Még jobb olvashatóság.
- @ole yup értem, de ha követendő útmutatás van, akkor a kódom nem adja át a ' ellenőrizze, hogy ' ezt megteszem-e
- +1. Hajlamos vagyok használni a @OleTange által említett stílust (legalábbis hosszú vagy bonyolult parancsok esetén) – de az általad említett stílusnak egyértelmű előnye van, hogy csak magad a vonalat nézve láthatod, hogy ez milyen folytatás. ' t sem az előző sor végére kell néznünk. Szép. ' nem vagyok benne biztos, hogy tetszik-e elég ahhoz, hogy kényszerítsem magam a szokásaim megváltoztatására, de tetszik.
- Őszintén szólva inkább a
&&
és||
a sorok elején. Ahogyan aOR
és aAND
sorokat az SQL WHERE záradékai sorainak elejére tettem. - IMO, óriási előnye van a következetességnek. Ha bizonyos esetekben KÖTELEZŐ használni a
` and in other cases it is optional, I would prefer to use
`parancsot, mindenhol a parancsom folytatódik a következő sorban. Egy szkript beolvasásával könnyen elmulaszthatja, hogy egy sor folytatódik, mert&&
vagy||
vagy|
. (És ahogy @ErikE mondja, valójában jobban szeretem, ha&&
és||
a következő sorban van).