My Photo

« BASIC認証の設定のAuthNameとRequire | Main | PHPメモ043:セッションの有効期間の設定 »

August 27, 2014

bashのシェルスクリプト

bashのシェルスクリプトの例。
/var/data/test ディレクトリにある拡張子が dat のファイルを /var/data ディレクトリに拡張子を txt にかけてコピーする。
今後、サーバ上で決まった複数のファイルをコピーするとか削除するみたいな単純な定型作業は、このスクリプトを修正して使うことにする。

#!/bin/bash
path1=/var/data

files=(`ls -1 ${path1}/test/*.dat`)
for item in ${files[@]}
do
  item2=`basename ${item} .dat`
  echo ${item2}
  cp ${path1}/test/${item} ${path1}/${item2}.txt
done

4行目ではコマンドをバッククウォートで囲んで、さらにカッコで囲っている。
バッククウォートで囲うとコマンドの出力を変数に代入できる。カッコで囲うと配列になる。つまり4行目はlsの出力からファイル名を要素とする配列を作ってfilesに代入している。
5行目で "@" は配列の特別なインデックスで、配列の要素をスペース区切りで出力する。
7行目のコマンド basename はパスからファイル名の部分を取り出して出力する。第2引数として「ピリオド+拡張子」を指定すると、ファイル名からさらに「ピリオド+拡張子」を取り除いた部分を出力する。

参考ページ:
for 文の使用方法 - UNIX & Linux コマンド・シェルスクリプト リファレンス
配列を使用する - UNIX & Linux コマンド・シェルスクリプト リファレンス
bash 配列まとめ - Qiita
[bash] シェルスクリプト入門 ~シェルスクリプトのいろは~ - SUNONE BLOG

« BASIC認証の設定のAuthNameとRequire | Main | PHPメモ043:セッションの有効期間の設定 »

Linux」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/60220005

Listed below are links to weblogs that reference bashのシェルスクリプト:

« BASIC認証の設定のAuthNameとRequire | Main | PHPメモ043:セッションの有効期間の設定 »

March 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof