Portál AbcLinuxu, 13. května 2025 16:53
for ARRAY_NAME in "${DIRS[@]}" do ... donea potřeboval bych nahradit ${DIRS[@]} něčím jiným co by dokázalo načítat data ne z pole ale data ze souboru.. Děkuji
for ARRAY_NAME in "${DIRS[@]}" do echo "$ARRAY_NAME" done
for LINE in $(cat file); do ...?
TEMP_FILE="/tmp/temp.tmp" ROW_COUNT=$(wc -l $TEMP_FILE) i=0 for ROW_NAME in "$(cat $TEMP_FILE)" do BAR=$(( 100*(++i)/$ROW_COUNT )) echo "$ROW_NAME" echo "$BAR" done
line 53: 100*(++i)/43 /tmp/temp.tmp : division by 0 (error token is "/temp.tmp ")
ROW_COUNT=$(wc -l $TEMP_FILE)
. Pusťte si tenhle příkaz (wc -l $TEMP_FILE
) a uvidíte proč. Řešením je použít přesměrování
wc -l < $TEMP_FILEnebo oříznout výstup
cut
em (například).
function foo { $NAME="/tmp/foo/foo/" $1 #tady se ma spustit: mkdir /tmp/foo/foo/ } foo "mkdir $NAME"jak tady v tom foo "mkdir $NAME" zapsat tu proměnou aby se doplnila až v te funkci foo ? Zkoušel jsem to až všelijak ale fakt nevím. Díky
foo "mkdir $NAME" foo "mkdir ""$NAME"" foo "mkdir "\"$NAME"\" foo "mkdir "`$NAME`" atd..
[ ! -d $NAME ] && mkdir $NAME
$1
použije $(eval $1)
a samotné volanie potom bude foo "mkdir \$NAME"
cat <<EOF XXX $BAR Vytvářím: $NAME XXX EOF
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.