[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥Insight Technology, Inc.
Flaskとかで作ったちょっとしたサーバーの起動/停止用のシェルスクリプト。 gunicornでデーモン状態にしている。 startで起動、stopで終了、restartでstop+start。 #!/bin/sh PROGNAME=`basename $0` BASEDIR=`dirname $0` PIDFILE=$BASEDIR/$PROGNAME.pid start() { echo "Starting server..." cd $BASEDIR gunicorn flaskhello:app -p $PIDFILE -D } stop() { echo "Stopping server..." kill -TERM `cat $PIDFILE` rm -f $PIDFILE } usage() { echo "usage: $PROGNAME start|stop|restar
あるフリーウェアのインストール用bashプログラムを見ていたら次の様なものがあった。(以下の例は簡略化してある。) STRING="abc" if [[ "$STRING" =~ "^ab[cd]$" ]]; then echo "matched" else echo "unmatched" fi if文の条件表現の中に“=~”というオペレータがある。manを見ると =~ オペレータは文字列を正規表現と比較するとある。知らなかった。bashの文字列比較で正規表現が使えるとは。私は正規表現比較が必要な時はgrepに喰わせて判断していたのだが、これを使えば簡単にできる。 ところが、だ。上のプログラムが期待通りに動かない。上の例では =~ の左辺と右辺の正規表現はマッチするはずだが、結果は“unmatched”。色々と正規表現を変えてみたが、どれとしてマッチングしない。しかし、if文を次のように
使いこなすと鬼。 個人的には、対話的な編集処理はvim、一括処理はsedって感じ。 で、sedの使い方とかまとめてみようかな、とか思ったんだけど、ちょいとまとめきれん...。 ので、うちが時々使うsedの使い方をば。 ニコニコとかの動画を保存する。 さっそくアレ気な小見出しですいません...(д よく使うのがこれなんで。 # cacheフォルダへ移動 $ cd ~/.mozilla/firefox/ちょめちょめ.default/Cache/ # とりあえずVideoファイルを列挙してみる。 $ file * | grep Video BF3F3C06d01: Macromedia Flash Video # grepと同じヿが -nと"/パターン/p"でできる。 $ file * | sed -n "/Video/p" BF3F3C06d01: Macromedia Flas
他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #
目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く