我試圖重命名檔案。
$ls
1.jpg 12.jpg 15.jpg 18.jpg 3.png 6.jpg 9.png
10.jpg 13.jpg 16.jpg 19.jpg 4.jpg 7.png
11.jpg 14.jpg 17.jpg 2.jpg 5.jpg 8.jpg
從1.jpg到01.jpg的檔案{1..9}.*而不考慮延長。我for在終端中嘗試了以下回圈,它運行良好。
$for i in {1..9}.*;do mv "$i" 0"$i";done
當我在 shell 腳本中撰寫相同的內容時,它不起作用。
#!/bin/sh
for i in {1..9}.*;do mv "$i" 0"$i";done
它給出了以下錯誤
mv cannot stat '{1..9}.*':No such file or directory
我認為 posix shell 不支持{1..9}.*語法。
問:posix 中的 this 是什么?
-謝謝。
uj5u.com熱心網友回復:
您可以使用通配符模式[1-9].*。
#!/bin/sh
for i in [1-9].*
do
mv "$i" 0"$i"
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396790.html
