タグ

シェルスクリプトに関するyuisekiのブックマーク (13)

  • シェルスクリプトによるデータ処理

    シェルスクリプトによるデータ処理 (一部工事中、順次拡張予定) シェルスクリプトの基 シェルスクリプトは、言語というよりはコマンド群のようなもので、 CやFortranと異なりコンパイルせずに使うことができる。 ここでは、大概のUNIXシステムで使うことのできるBシェルを扱う。 シェルスクリプトの一番簡単な使い方は、ただコマンドを羅列することである。 #!/bin/sh echo "This is B-shscript." ls cd .. 上記のファイルを例えばtest.shとする。実行するには、ファイルに実行許可を与えてからファイル名を打つ。 % chmod +x test.sh % test.sh (環境によっては、% ./test.sh) echo文が実行され、"This is B-shscript."という出力がなされ、ディレクトリ内のファイル一覧が出され、最後にディレクトリが

  • UNIX シェルスクリプト入門

    シェルの作成・実行 ・ シェルスクリプトとは ・ シェルの書き方 ・ シェルの実行 変数 ・ シェル変数 ・ 特殊な変数 制御構文 ・ if ・ case ・ while ・ for ・ until 演算・比較 ・ 四則演算 ・ 数値比較 ・ 文字列比較 ・ ファイルチェック ・ 論理結合 関数・オプション ・ 関数の作成 ・ オプションの使用 サンプルスクリプト集 ・ 共通関数を外部ファイルに作成する ・ ヒアドキュメントの利用 ・ findコマンドの有効利用 ・ リストファイルを読み込んで処理する

  • [Shell] $(cd $(dirname $0) && pwd) を理解する (それなりブログ)

    CURRENT=$(cd $(dirname $0) && pwd) とは これは CURRENT変数へスクリプトファイルのカレントディレクトリを格納する シェルスクリプトのお便利ワンライナーです #!/bin/sh CURRENT=$(cd $(dirname $0) && pwd) echo $CURRENT # -> どこから実行してもファイルの場所を返す しかし、意味不明 最近これを知って便利に使っているんですが、自分のShellScrpit力の低さから理解不能でした ということで、勉強することにしました 各要素の解説 特殊変数や記法などの整理です $0 = スクリプトファイル名が入る dirname 引数 = 引数文字列のディレクトリ部分だけを返す && = 左辺のコマンドがステータス0の正常終了なら右辺も実行する $() = プログラミングの (式) と同じように式の分離

  • シェルスクリプトに関する覚え書き

    cshは使うな Bournシェル(sh)にはできて、cshにはできない事が結構ある。 はまる迄は便利だと思っていたが、はまった後、脱出までに費やした時間と労力を考えると… リダイレクションとファイル操作ではまる事が多い。機能が貧弱というか… 標準エラーをパイプに流し込む事ができない。 ファイルを閉じることができない: 2>&- ができない。 端末からの入力を得るには一行入力 $< を使うしかない。 Bournシェルのread文の様な自由度はない。 クォートできないケースが多々存在 これが非常に頭にくる。 cshが載っていない処理系も存在する:Bournシェルが無い処理系は、まず無いが、cshが無い処理系は結構ある。 文法 特殊文字 以下の文字はエスケープする必要がある ;  & ( ) | ^ < > ? * [ ] $ ` " ' { } [TAB] [SP

  • シェルスクリプト:ビルトインの test を活用する - Fly high.のブログ

    「カレントディレクトリの中のファイルに使われている『拡張子』の種類と数を調べたい」といった用途には、以下のようなワンライナーが使えます。 for i in *; do echo .${i#*.}; done | sort | uniq -c さきに紹介した変数展開 ${…#…} を使ってカレントディレクトリの各ファイル( * )の『拡張子』部分を取り出し、パイプを使って外部コマンドの「 sort | uniq -c」にわたしています。 これでも動きますが、このままではディレクトリや拡張子のないファイルもソートされ(さらに、よけいな「.」が付けられたうえで)、表示されてしまいます。そこで、これらのファイルを処理対象に含めないようにするならば、たとえば以下のような表現が使えます。 for i in *; do if [ ! -d $i ] && [ -z "${i%%*.*}" ]; then

    シェルスクリプト:ビルトインの test を活用する - Fly high.のブログ
  • シェルスクリプト:ワンライナーで変数を活用 - Fly high.のブログ

    UNIX系のシェルが単純な「コマンドインタープリタ」にはとどまらず便利に使える点のひとつとして、「変数(parameter)を活用できる」ことがあると言えるでしょう。簡単に試すなら以下のような方法が使えます。 $ i=1 $ echo $i 1 $ echo ${i} 1 シェルスクリプトで変数を扱う場合、たとえば変数名が「 i 」であるなら、変数名そのものは「 i 」と書くのに対し、その値を参照するときは「 $i 」としなければなりません。 注:なお、値の参照については「 ${i} 」とするのがより汎用的で正式な書き方で、以下の例のいずれにおいても「 $i 」の代わりに「 ${i} 」を用いることができます。 私見ですが、ワンライナーで書けるような単純な処理で、変数を使ってその値を活用したいと思うかどうかの心理的な閾値は、その値が処理の中で3箇所以上にわたって登場するかどうか、というあた

    シェルスクリプト:ワンライナーで変数を活用 - Fly high.のブログ
  • Linuxのシェルスクリプト変数の記号あれこれ - 気まぐれな備忘録(仮)

    簡単な表記だと色々な書籍に載っているのだが、 全部が網羅されているわけではないので、 あまり使用しない表記に出くわしたら、ぐぐるしかない。 しかし、$(ダラー)、:(コロン)、=(イコール)などの記号が混じった表記は ぐぐりづらいので、ちょっと整理してみた。 表記 意味 $NAME 変数NAMEを表す。 $1, $2, …, $9 各引数を表す。順に1番目、2番目、…、9番目を意味する。 ${10}, ${11}, … 10番目、11番目、… の引数を意味する。 $0 実行されたシェルスクリプトのファイル名を表す。 $# 引数の数を表す。 $@ 引数をスペース区切りで表す。 $* 引数を環境変数IFSで区切って表す。IFSが空の場合、スペース区切りとなる。 $? 直前に実行された処理の終了コード値を表す。 $$ 現在実行中のシェルのプロセスID値を表す。 $! 直前に実行された処理のプロセ

    Linuxのシェルスクリプト変数の記号あれこれ - 気まぐれな備忘録(仮)
  • 用語集:シェル記号類まとめ: UNIX/Linuxの部屋

    用語集 シェル記号類まとめ sh・csh・tcsh・bash などのシェル・シェルスクリプトの記号まとめ (> >> 2>&1 < << $$ >& & && ( ) | || <<- <& >| <>) 最終更新 2019-01-13 UNIX/Linux の sh・bash、csh・tcsh など、シェルやシェルスクリプト関連の記号類をまとめてみる。

  • LINUXコマンドでこんなことできますか?という質問です。…

    LINUXコマンドでこんなことできますか?という質問です。解決案に500Pお支払いします。 何らかの処理が「5秒以内」に終了しなかったら、強制終了(kill)みたいなことをしたいです。 例)nkf hoge.txt して5秒以内に完了しないなら、強制終了。 シェルスクリプトを作るのではなく、コマンドで出来たら有り難いです。ワンライナーで。 超適当)nkf hoge.txt >dev/null &|sleep 5|ps nkf|kill nkf みたいな。

    yuiseki
    yuiseki 2012/06/14
    エラー時はすぐ帰ってくるけど正常時に長時間帰ってこないようなコマンドを強制終了させるのにこれ使えた
  • 用語集:シェルスクリプト: UNIX/Linuxの部屋

    sh が解釈できるシェルスクリプトのことを「sh スクリプト」(シェルスクリプトまたはエスエイチスクリプト)、csh が解釈できるシェルスクリプトのことを「csh スクリプト」(シーシェルスクリプト) と呼ぶことがある。

  • シェルスクリプトでサーバーを起動、停止する - 偏った言語信者の垂れ流し

    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

    シェルスクリプトでサーバーを起動、停止する - 偏った言語信者の垂れ流し
  • シェル・スクリプト・リファレンス INDEX:ITpro

    「制度上は6カ月を許容」でくすぶる不安、携帯4社のお試し利用で2年間タダの現実味 2024.09.18

    シェル・スクリプト・リファレンス INDEX:ITpro
  • シェルスクリプト(Bash)

    シェルスクリプトとはコマンドやシェルの組み込みコマンドなどをファイルに記述し、実行できるようにしたものである。 またプログラムの制御構造なども使用でき、柔軟な処理が可能であり、/etc/rc.d/initd/ディレクトリ内の起動スクリプトなどはシェルスクリプトである。 シェルスクリプトを実行するには実行権限および読み込み権限が必要です。 またシェルスクリプトファイルの1行目にはシェルスクリプトを実行するシェルのパスを記述します。 スクリプトファイル内でも、シェル変数を定義することができる。またその変数を参照する場合は変数名の前に" $ "を 付けることで参照できる。変数名に使用できる文字は英数字および" _ "(アンダーバー)であり先頭は英字を使用しなくてはならない。

  • 1