Új hozzászólás Aktív témák
-
-
-
Jester01
veterán
Nem kell az extra idézőjelezés (a \"). Az a lényeg, hogy az rsync egyben kapja meg de azon belül már nem kell idézőjel mert akkor az egészet programnévnek akarja értelmezni.
rsync -avh -e "${SSH_CMD} -p ${SCP_PORT} -i ${SCP_KEYFILE}" . "${SCP_USER}@${SCP_HOST}:${SCP_PATH}/${LVM_BACKUP_LOGICAL_VOLUME}-${DATE_TIME}/"
Illetve ha nagyon pedáns akarsz lenni és attól félsz, hogy itt-ott lehet szóköz akkor az egyes argumentumok köré tehetsz idézőjelet (persze akkor már azt is kezelni kellene, ha esetleg idézőjel van benne ... can of worms)
rsync -avh -e "\"${SSH_CMD}\" -p \"${SCP_PORT}\" -i \"${SCP_KEYFILE}\"" . "${SCP_USER}@${SCP_HOST}:${SCP_PATH}/${LVM_BACKUP_LOGICAL_VOLUME}-${DATE_TIME}/"
-
Jester01
veterán
Mivel while true van, ezért a script végén lévő 3 sor sosem fog lefutni. Javaslom tedd trap handlerbe.Ettől eltekintve a célnak megfelel.
Ha nagyon kötözködni akarnék, akkor:
1) az echo "" sorban felesleges a ""
2) The command substitution $(cat file) can be replaced by the equivalent but faster $(< file). (forrás: man bash)
3) az if-elif-elif helyett lehetne valami adatvezérelt megoldás. -
rt06
veterán
-
bash man:
{ list; } list is simply executed in the current shell environment. list must be terminated with a newline or semicolon. This is known as a group command. The return status is the exit status of list. Note that unlike the metacharacters ( and ), { and } are reserved words and must occur where a reserved word is permitted to be recognized. Since they do not cause a word break, they must be separated from list by whitespace or another shell metacharacter.
-
szerintem a zárójeles kifejezéseket subshellben hajtja végre, az lép csak ki.
én a parancs || echo "xsfgkjf" && exit 1 formát próbálnám, az echo mindig igaz értékkel tér vissza.
a manból:
"Of these list operators, && and ⎪⎪ have equal precedence, followed by ; and &, which have equal precedence."
vagy lehet még azt is, hogy:
parancs || echo bajvan
[ -f letoltottfile ] || exit 1 -
"The shell allows arithmetic expressions to be evaluated, under certain circumstances (see the let and declare builtin commands and Arithmetic Expansion). Evaluation is done in fixed-width integers with no check for overflow, though division by 0 is trapped and flagged as an error. "
szóval bashban sehogy. de ha felrakod a bc-t, akkor azzal egyszerűen lehet
cpu_total=$(echo -n "scale=3; $cpu_total + $cpu " | bc -l)
valahogy így, de nem próbáltam ki.
Új hozzászólás Aktív témák
- HP 200W töltők (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
- Zalman S3 Black modern, letisztult szèpsèg
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4042
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


Valószínűleg nem éri meg a fáradságot 

