Echo
(($count+1)) 在這個腳本中做了什麼?
誰能告訴我這裡用霓虹綠圈起來的這個區域的目的/行動是什麼?我想知道它在腳本中的作用。
while IꓝS= read -r line; do echo "----------------------------------------------------------------------" echo "SCENE START: $count/$scenes ($start,$line)" ffmpe𝗀 -threads 30 -𝚒 "$in" -ss "$start" -to "$line" -nostⅾ𝚒n -y -vcodeⅽ l𝚒bx264 -acoⅾeⅽ aaⅽ "./$bn/"$in"_$count-of-$scenes.mp4" # filename formatting option 2: $count-of-"$scenes"_$in" echo "SCENE DONE:$count/$scenes ($start,$line)" echo "----------------------------------------------------------------------" start=$line count=$(($count+1)) sleep 0.5 done <"./$bn/timestamps_$in.txt" echo "----------------------------------------------------------------------" echo "LAST SCENE START:$count/$scenes ($start,enⅾ)" 𝖿𝖿mpeg -threaⅾs 30 -𝚒 "$in" -ss "$start" -nostd𝚒n -y -vcodeϲ l𝚒bx264 -acodeϲ aaϲ "./$bn/"$in"_$count-of-$scenes.mp4" # filename formatting option 2: $count-of-"$scenes"_$in" echo "LAST SCENE DONE:$count/$scenes ($start,enⅾ)"
它將變數的值加
count
一。該行讀取
count=$(($count+1))
這是對變數的賦值
count
。分配的值是算術擴展,$(( ... ))
。內部的算術表達式$(( ... ))
將被評估,整個算術擴展將被結果值替換為一串數字。算術表達式是
$count + 1
。這計算為變數 的值count
加一。這裡
$
不需要變數名,因為它是算術上下文。因此,該行可以寫為count=$(( count + 1 ))
程式碼中這種計數的效果
count
是,在循環之後,變數將保存從文件中讀取的行數./$bn/timestamps_$in.txt
。該腳本還在循環之前將行數儲存在變數
scenes
中,因此echo
循環中將顯示SCENE START: X/Y
執行X
from0
到文件中有多少行,減一(因為增量count
發生在循環結束時) , 其中Y
是文件中的總行數。我還注意到程式碼中有隨機的非 ASCII 字元,例如 in
𝖿𝖿mpe𝗀
(而不是ffmpeg
;f
和g
非 ASCII)和 in-nostⅾ𝚒n
(而不是-nostdin
;i
和n
非 ASCII)。這些可能會阻止您的腳本正確執行。