by shigemk2

当面は技術的なことしか書かない

シェルスクリプト

shell check

Haskellによるシェルのバグチェック。 なお、fishには未対応っぽい。 github.com

$@を応用して特定ディレクトリの全てのファイルに対して処理を行う

node bftranslate.js brainfuck/A.b js/A.js というコマンドがあったとして、 node bftranslate.js brainfuck/B.b js/B.js node bftranslate.js brainfuck/C.b js/C.js node bftranslate.js brainfuck/D.b js/D.js node bftranslate.js brainfuck/E.b js/E.j…

#

とある物理の院生日誌~院生は社会へ旅立った~ 【シェルスクリプト】シャープ、パーセントを使った文字列操作 ${変数#パターン} 変数について、最初の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。.oh-my-zsh/plugin/…

長ったるいJSコードを圧縮してみよう

日本語で紹介してるやつ Closure Compilerを使う! - トップページ 公式 closure-compiler - Closure Compiler - Google Project Hosting公式からダウンロードしたものを解凍して、compiler.jarを取り出す。使い方なんかはこちらに書いてあるのですが、 Clos…

findで検索したファイルの末尾に文字列を挿入する

>> を使えば、ファイルの末尾に文字列を挿入することは出来る。 $ echo 'hoge' >> hoge.txt が、文字列を挿入したいファイルが複数あったらどうしたらよいのか。イメージとしてはこんな感じである。 $ echo 'hoge' >> hoge1.txt $ echo 'hoge' >> hoge2.txt …

シバンの意味

こんなのをシバンと言う。 #!/bin/sh シェルスクリプトでは必ずファイルの先頭にこのシバンをつけないといけない。 カーネルはプログラムの実行依頼を受けると、 ファイルの種類を判別して、それに適したプログラムの起動を行う。ファイルの先頭が#!になって…

Bourne shell

Unixシェルのこと。シバンが #!/bin/sh で始まるシェルスクリプトは、コマンド名sh=Bourne shellで実行されている。

unset

Linuxコマンド集 - 【 unset 】 変数の定義を解除する:ITpro unset 変数の定義を解除する。 指定した変数や関数を削除する。 ただし,シェルが初めから利用している変数やreadonlyが指定されている変数は削除できない。また、プロセスが消えると自動的に変…

引数 $1 と $@ と $*

見ていただけたらいいよ。 #! /bin/sh hoge() { echo $1 } PARAMS="Mon Tue Wed Thu Fri Sat Sun" hoge $PARAMS hoge() { echo $@ } PARAMS="Mon Tue Wed Thu Fri Sat Sun" hoge $PARAMS hoge() { echo $* } PARAMS="Mon Tue Wed Thu Fri Sat Sun" hoge $PAR…

whileでの条件式

while 文の使用方法 - UNIX & Linux コマンド・シェルスクリプト リファレンス[]で囲む。 #!/bin/sh YEAR=2000 while [ $YEAR -le 2020 ] do echo $YEAR YEAR=`expr $YEAR + 1` done 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013…

引数

引数を処理する - UNIX & Linux コマンド・シェルスクリプト リファレンス #!/bin/bash # 実行時に指定された第一引数、つまり変数 $1 の値が 3 でなければエラー if [ $1 -ne 3 ]; then echo "実行するには第一引数が3じゃないといけないよ。" 1>&2 fi # ヒ…

case

こちらから。 case 文の使用方法 - UNIX & Linux コマンド・シェルスクリプト リファレンス #!/bin/bash # "q" 入力以外で終了しないように無限ループにする。 while : do read key case "$key" in "a" ) echo "aが入力されました。" ;; "bb" ) echo "bbが入…

export

export name 環境変数を設定する。 変数nameをいわゆる「グローバル変数」化する。親シェルは自分のシェル変数の中でexportされているものだけを サブシェル側 でも参照できるようにコピーする。

シェルスクリプトでphpを実行する

ワンライナーとバッククォートを組み合わせて、変数に実行結果を展開するとよいです。 HOGE=`php -r "echo date('Y', time());"` echo $HOGE 結果 2012

バッククォートの外で定義した変数をバッククォート内で使用する

シングルクォートの中では特殊文字は展開出来ないことに注意したら 割と簡単。 MONTH=1 HOGE=`php -r "echo date('m', mktime(0, 0, 0, $MONTH, 12, 2012));"` echo $HOGE 結果 01

変数定義と文字列内での変数

初回は$はいらないけど、次回以降必要です。 month=7 echo "2011-$month-01 00:00:00" 2011-7-01 00:00:00

インクリメントのループ

メモ。`seqを使う。 hoge=7 for i in `seq 1 $hoge` do echo "$i 回目のループです。" done 1 回目のループです。 2 回目のループです。 3 回目のループです。 4 回目のループです。 5 回目のループです。 6 回目のループです。 7 回目のループです。 たぶん…