シェルスクリプトがちゃんと動かない
よろしくおねがいします。
fileフォルダに
1.txt
2.txt
3.txt
というファイルがあり、ここから1.txtを別フォルダに移動します。
(ここまでは問題ありません)
その後fileフォルダには
2.txt
3.txt
というファイルが残るのですが、このファイル名を自動的に
1.txt
2.txt
と連番でリネームしたく
#!/bin/sh
declare -i i=1
for file in *.txt
do
mv $file $i.txt
i=i+1
done
をhoge.shとして準備しました。
Mac OS X(Darwin)では思い通りに実行されるのですが、Webサーバ(FreeBSD 6.1-RELEASE-p21)にアップし
%sh hoge.sh
とすると
declare: not found
となり、ファイルの方も
.txt
i+1.txt
の2ファイルになってしまいます。
あまり知識も無く勉強しながらなのですが、きちんと連番で書き換えられるようにするにはどうすればよろしいでしょうか?
根本的に間違ってる事などあるかと思いますがよろしくおねがいします。
良回答
それは/bin/shの機能を超えた Darwinのシェルの拡張機能を使っているからでしょう。
また、ファイルが10個以上あると
for file in *.txt
では
1.txt 10.txt 11.txt 2.txt 3.txt・・・
という順序で処理されてしまいます。
とりあえず
man sh
を全部読破すれば理解できると思いますよ。
記事提供:OKWave
「BSD系OS」 のバックナンバー
-
所有者は違うがグループが同じファイルに対して、グループ所属者がFTPでRW,chmodするのを許可したい
現在サーバを運用しているのですが、同じグループに属するユーザーには、ファイル所有者(そのグループに属している)に関係なくFTPにおいて読込、書込、上書、権限変更を許可したいのですが、実現方法がわかりません。 -
FreeBSD5.xでのインストールでHDD書き込みエラーが出てしまう
-
MacOSXで外付けHDがマウントできなくなってしまいました
-
resolv.conf が勝手に書き換わる
-
連番タイトルのファイル名を自動的にリネームするスクリプトが動かない
- BSD系OS 一覧へ »
ホワイトペーパー
ZDNet Japan Essential Topic
-
【今注目のIT企業は何を考える…??】
オススメIT系求人情報も毎週月曜日更新! -
コラボレーション基盤特集
Notes置換とバージョンアップの情報はこちら
企画特集
[PR]
-
APC SOLUTIONS FORUM 2008をレポート
電源、冷却の効率化によるエネルギー削減とは? -
ZDNet Japan ホスティング特集
2008年夏のホスティングサービスのトレンドは何? -
セキュリティ対策レベルテスト公開!
自社のセキュリティのウイークポイントはドコ? -
ZDNet Japan Green IT
サミットだけでは終わらせない!エンタープライズの取り組みはこれからだ! -
「シンプル」&「低コスト」な運用管理
IT運用管理に関するアンケート実施中! -
Webセキュリティ特集
Web2.0時代の脅威へ対抗するためのソリューションとは? -
DELLが掲げる「新・仮想化アセスメントサービス」
〜企業システムの仮想化環境の構築を支援〜 -
Techno Exchange
RackableとCTCの地球にやさしい関係 -
仮想化環境で求められるストレージの要件
それに応えるNetAppの実力とは? -
Secure Web
Web2.0時代にプロアクティブなセキュリティを実現!! -
SaaSで開発効率UP!
SaaSでできる、ソフトウェア開発情報の一元化とは -
IronPort Sシリーズ
Webからの脅威に関する課題の3つの解決方法