この質問は尋ねられましたが、複数の解決策を見つけることができず、私のためには機能しません。番号付きで既存のシーケンスからファイルの新しいシーケンスを作成します
image1.jpg
image2.jpg
image3.jpgは
そして、各1のコピーを作成:基本的に、私はこのようなファイルのリストを取りますbashスクリプトを探しています順番に逆方向に番号を付けます。だから、シーケンスが作成した3つの新しいファイルは、されているだろう:
image4.jpg
image5.jpg
image6.jpg
そして、まだ、image4.jpgは画像3のそのままコピーされていると思います。 jpg、image5.jpgはimage2.jpgのコピーです。私はすでにthis stackoverflow questionで概説されている解決策を運のない状態で試しました。私は、bashスクリプトのパスをあまり遠く離れているとは思っていません。そして、最初にリストされた答えでコードの塊をとり、スクリプトを作成すると、私はいつも "2:Syntax error:"( "unexpected"私は何か間違ったことをしているか、より良いスクリプトがあります。
私はこのコードを以前に投稿していませんが、私が使用しているコードは残念です。
image=(image*.jpg)
MAX=${#image[*]}
for i in ${image[*]}
do
num=${i:5:3} # grab the digits
compliment=$(printf '%03d' $(echo $MAX-$num | bc))
ln $i copy_of_image$compliment.jpg
done
そして、私はこのコードを取って、ナノでファイルに貼り付けると、最初の行として#/ binに/ bashのを追加し、その後、chmod +x script
とsh script
経由でbashで実行していますもちろん、:です!。私のテストでは、ファイルを適切に使用しています。 itled image1.jpg - しかし、私はまた、このスクリプトをjpegのディレクトリに適用する方法について疑問を抱いていました。必ずしもタイトルが付いていない画像(整数).jpg - 私のファイル保存構造では、これらのほとんどは単一の単語で、 number、then .jpgのように、スクリプトを書き換える必要はありません。
コードを投稿しないと、構文エラーが発生します。してください。 – tripleee
ありがとうございましたfirの更新配列の構文は基本的なものです。ファイルの先頭に '#!/ bin/bash'があることを確認してください。そうしないと、' sh'(あるいは 'csh')プラットフォーム)。 – tripleee
近くに読むと、エラーは 'shスクリプト'です。代わりに 'bash script'(または単に'。/ script')を使います。 – tripleee