Shell script」カテゴリーアーカイブ

Linuxで使えるシェルスクリプトに関するカテゴリーです。

Makefileの書き方メモ

Makefileで個人的によく使う書き方メモ

基本的な書き方

ターゲット名: 依存ファイル
--TAB-- コマンド1
--TAB-- コマンド2

よく使うマクロ

$@ターゲット
$<依存ファイルの先頭
$^依存ファイル全て

サンプル

helloをビルド(マクロを使わないパターン)

hello: hello.c
--TAB-- cc -o hello hello.c

lesscpy.less.cssに変換(マクロを使うパターン)

lesscpy $< > $@

convertコマンドで.pngファイルを.jpgに変換(サフィックスルール)

.SUFFIXES: .jpg .png
.png.jpg:
--TAB-- convert $< $@

Bashで連続した数字のループを回す簡単な方法

{1..5}のようにすることで、1〜5でループすることができます。

for i in {1..5}
do
  echo $i
done

{..}はループ以外でも使うことができるので便利です。

$ touch file-{1..5}.txt
$ ls
file-1.txt  file-2.txt  file-3.txt  file-4.txt  file-5.txt

リンク

Bash Reference Manual
http://www.gnu.org/software/bash/manual/bashref.html

Bashでファイル名から拡張子とそれ以外の部分を分離する簡単な方法

example.txtというファイル名から拡張子とそれ以外の部分で分離するサンプル

$ full="example.txt"
$ extension=${full##*.}
$ filename=${full%.*}
$ echo $extension
txt
$ echo $filename
example

/path/to/example.txtのようなフルパスからディレクトリ部分を取り除くのはbasenameコマンドでできます。

$ basename /path/to/example.txt
example.txt

リンク

Bash Reference Manual: Shell Parameter Expansion
http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html