3

私はたくさんのファイルを持っています。以下はファイルです

DSCN2352.JPG  DSCN2356.JPG  DSCN2360.JPG  DSCN2364.JPG
DSCN2353.JPG  DSCN2357.JPG  DSCN2361.JPG  DSCN2365.JPG

これらのファイルの名前を変更したいので、スクリプトを作成しました

#!/bin/bash
declare -a kl=( "$@" )
kl=$(ls *.JPG)
echo ${kl[@]}
p=0
for i in kl ;
 do mv $kl d$p.JPG
  $p=$p+1  ;
 done

エラーが発生しています

mv: target `d0.JPG' is not a directory
./rename.sh: line 8: 0=0+1: command not found


スクリプトを更新した後の更新

#/bin/bash
p=0
for i in *.JPG;
do
mv "$i" "d$p.JPG"
(( p+1 ))  ;
done

ファイル

DSCN2352.JPG  DSCN2356.JPG  DSCN2360.JPG  DSCN2364.JPG
DSCN2353.JPG  DSCN2357.JPG  DSCN2361.JPG  DSCN2365.JPG

消えて、1 つのファイル d0.jpg だけが残ります。残りのファイルは、更新されたスクリプトを実行した後に削除されます。

4

3 に答える 3

2

変化する

$p=$p+1  ;

(( p=p+1 ))

または単に

(( p++ ))

良い一日。

于 2013-03-09T04:37:50.720 に答える
0
p=0
for i in *.JPG
do
  mv "$i" d$p.JPG
  p=$(($p+1))
done
于 2013-03-09T04:41:18.927 に答える
0

次のようなことができます。

#!/bin/bash
p=0
for file in ./*.JPG ; do
    echo "$file"
    mv $file d$p.JPG
    p=`expr $p + 1`
done
于 2013-03-09T04:49:39.493 に答える