【发布时间】:2022-01-27 06:18:47
【问题描述】:
我正在尝试重命名文件。
$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..9}.*,从1.jpg 到01.jpg,与扩展名无关。
我在终端中尝试了以下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 的等价物是什么?
-谢谢。
【问题讨论】:
-
尝试将
#!/bin/sh更改为#!/bin/bash