タグ

shellscriptに関するktakeda47のブックマーク (19)

  • Guide to Windows Batch Scripting - /* steve jansen */

    I love shell scripting – it’s the duct tape of programming to me. Low cost, high benefit. And it feels like art, where one can learn to do increasingly complex tasks with greater simplicity. Sadly, I feel like it’s a developer skill on the decline. Maybe new developers feel it’s “not real programming”. Perhaps the growing dominance of Java as the lingua franca of academic comp sci courses has made

  • シェルスクリプトで再帰的にディレクトリ探索 | じゅーすくブログ@タイトル未定

    ディレクトリ内のファイルに対して共通の処理をするなら、 #!/bin/sh for FILE in ./* do echo ${FILE} # ファイル名を出力 done こんな感じ。 inの後ろをディレクトリ名とかにすれば、そのディレクトリ内で処理してくれる。 ディレクトリ内のディレクトリ内のファイルに対して共通の処理をするなら #/bin/sh find . -type f | while read FILE do # ファイルパスを表示 echo ${FILE} # ファイル名のみ表示 echo $(basename $FILE) done こんな感じでfindコマンドを使うと、再帰的にディレクトリを探索して処理してくれる。

    シェルスクリプトで再帰的にディレクトリ探索 | じゅーすくブログ@タイトル未定
  • How to check if a file is binary?

  • 【 文字列に一致する条件で分岐する「case」 】

    caseは与えられた文字列と一致するパターンの処理を行う分岐制御文だ。caseは以下のように記述する。 caseの後に書かれた文字列と各条件を比較し,マッチしたものの処理を行う。たとえば文字列が「Fukuda」で条件3が「Fukuda」であった場合は,処理3を処理する。また,条件は上から順に行われていくため,もし,マッチする条件が複数存在した場合でも,先に評価された条件が優先される。また,各条件の処理の最後には「;;」を付ける。 たとえば,以下のようなシェル・スクリプト「name.sh」があったとする。 #!/bin/sh case $USER in root) echo "Hello Adoministrator." ;; fukuda) echo "Ciao, my master." ;; tejima) echo "How are you, Mr.Tejima?" ;; esac

    【 文字列に一致する条件で分岐する「case」 】
  • 文字列Aに文字列Bが含まれるか - わからん

    勤務先の凄腕ハッカーの方に、おおよそ次のような書き方を教わりました。考えろ! というかんじ。爽快な一日でした。 if [ `echo 'hogefuga' | grep 'fuga'` ] ; then echo 'ok' fi

  • 【FreeBSD】シェルスクリプトでパス文字列からファイル名/ディレクトリ名/拡張子を抽出する

    対象プラットフォーム: FreeBSD 8.x (下記手順を2014/05/01にFreeBSD 8.4-RELEASEで確認済み) はじめに シェルスクリプトを書いていると、ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出したいケースによく遭遇します。 このページでは、これらの文字列の抽出方法について説明します。 早速サンプルのシェルスクリプト ファイル名を含むパス文字列から、ファイル名や、ディレクトリ名、拡張子の部分のみを抽出するのは、かなり容易です。 早速サンプルをご紹介します。 #!/bin/sh test_path="/usr/local/etc/apache/httpd.conf" string_filename=${test_path##*/} string_filename_without_extension=${string_filen

  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • /etc/init.d/hoge start と service hoge start は何が違う?

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « X220 が Fan Error. により完全に沈黙 :: X220 のファンユニットを交換 » 2014/06/04 /etc/init.d/hoge start と service hoge start は何が違う?  systemmanagemant  cli 214 4へぇ 普段、Linux でデーモンを制御するには /etc/init.d/hoge というスクリプトを叩いている*1のですが、あるマニュアルを読んだら service hoge を使いましょう的なことが書いてありました。 試してみると確かに /etc/init.d/hoge start の代わりに service hoge start としても同じようにデーモンが起動できるようです。 ただ、困ったことに僕にはこの2つの違いが

    /etc/init.d/hoge start と service hoge start は何が違う?
    ktakeda47
    ktakeda47 2014/06/05
    "その違いが理解できない状態というのは未来の失敗につながっているというのが常"
  • シェルスクリプトを書くときに気をつける9箇条 - Qiita

    最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、

    シェルスクリプトを書くときに気をつける9箇条 - Qiita
  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • 日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → -d 'N days ago' オプションで N 日前の日付を取得できる。 Linux では拡張された GNU date コマンドが使用できるので、簡単に過去の日付を取得できる。 $ date 2007年 6月 2日 土曜日 23:05:20 JST #↑そのまま実行すると当日の日時が表示される。 $ date -d '1 days ago' 2007年 6月 1日 金曜日 23:05:31 JST #↑1日前を指定すると、現在日時から24時間前の日時が表示される。 「GNU date」が使用できない場合 → 一時的に環境変数 TZ を変更した上で date コマンドを実行する。 古い UNIX マシンなどでは、「GNU date」が使用できない場合が多い。そういった環境では、一時的にタイムゾーンを変更して date コマンドを実行することで、過去の日付を取得することができる。 $ e

    日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 有効なWikiNameではありません - yanor.net/wiki

    2023-11-03 Windows/エクスプローラー/レジストリでアプリケーションの関連付けをする 2023-10-30 Windows/WSL/環境構築/ディストリビューションのアンインストール MySQL/環境設定/Debian 10にMySQL8をインストール 2023-10-26 Vim/環境設定/インストール/WindowsZIPファイルでインストール Windows-アプリケーション/Mery/インストール Windows/WSL/ファイルシステム/WSL2のディスクスペースを開放する Git/設定/TortoiseGit Git/設定/TortoiseGit/libgit2でnot owned by current userなエラーが出る 2023-10-23 Windows-アプリケーション/Mery 2023-10-10 ウェブ開発全般/CodeSandbox/概要

    ktakeda47
    ktakeda47 2012/05/11
    文字列から部分的に文字列を取り出す
  • シェルスクリプト - yanor.net/wiki

    2023-11-03 Windows/エクスプローラー/レジストリでアプリケーションの関連付けをする 2023-10-30 Windows/WSL/環境構築/ディストリビューションのアンインストール MySQL/環境設定/Debian 10にMySQL8をインストール 2023-10-26 Vim/環境設定/インストール/WindowsZIPファイルでインストール Windows-アプリケーション/Mery/インストール Windows/WSL/ファイルシステム/WSL2のディスクスペースを開放する Git/設定/TortoiseGit Git/設定/TortoiseGit/libgit2でnot owned by current userなエラーが出る 2023-10-23 Windows-アプリケーション/Mery 2023-10-10 ウェブ開発全般/CodeSandbox/概要

  • 【 文字列を置換する 】

    Linuxのコマンドを「やりたいこと」でまとめました。「やりたいこと」を実行するためのコマンドと使用例を掲載しています。コマンドの基を学びたい方は「Linuxコマンド道場」を参照ください。ファイルの操作からテキスト・ファイルの処理方法まで,例題に基づいて学べます。

    【 文字列を置換する 】
  • 【 文字列を抜き出す「cut」 】

    文字列の中から所定の位置にある文字列のみを抜き出したい場合はcutを利用する。cutの主なオプションは表の通り。 オプション 意味

    【 文字列を抜き出す「cut」 】
  • 一見読みにくい記法もシェルスクリプトの流儀

    前回に引き続き、今回もOS付属のシェルスクリプトを読んでいく。「当にこれでいいのか?」と思うような読みにくい記述も見つかるが、よく読むとシェルスクリプトならではの流儀を学ぶことができる(編集部) とにかく何か作ってみろ シェルスクリプトはお世辞にも読みやすいプログラミング言語とは言えない。ほかの言語にはない特有のルールがあるので、あまり経験がない人がちょっと複雑なシェルスクリプトを読むと嫌になってしまうかもしれない。 その半面、シェルスクリプトにはちょっと書いてすぐに試せるという良い点がある。シェルスクリプトの解説書やソースコードを読みながら「なんだかよく分からない」「マニュアルを読んでもよく分からない」という人には、短くてもいいからとにかく何かシェルスクリプトを書いて、試してみることを強くお勧めする。 これはどんなプログラミング言語にも言えることだが、習得しようと思っても、解説書を読ん

    一見読みにくい記法もシェルスクリプトの流儀
  • ログアウトしてもバックグラウンド ジョブを継続する方法

    はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド

    ログアウトしてもバックグラウンド ジョブを継続する方法
  • シェルスクリプト入門 [演算・比較]

    乗算の演算子は「*」ですが、UNIXでは「*」はワイルドカードという特別な意味がありますので、エスケープ文字「\」を使用して「\*」と書きます。また、演算子の前後のスペースは省略できませんので注意してください。以下は四則演算のサンプルスクリプトです。 expr_test.sh #!/bin/sh a=`expr 5 + 3` b=`expr 5 - 3` ab=`expr $a + $b` c=`expr 5 \* 3` d=`expr 5 / 3` e=`expr 5 % 3` echo "a=$a" echo "b=$b" echo "ab=$ab" echo "c=$c" echo "d=$d" echo "e=$e"

    ktakeda47
    ktakeda47 2012/02/28
    四則演算
  • 引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    引数を処理する 引数とは? 引数 (ひきすう) とはコマンド (シェルスクリプト) 実行時に、コマンドラインから渡される値のことである。 引数は実行時にプログラム内で参照され、シェルスクリプトの実行結果 (動作) に影響を与える。引数はパラメータと呼ばれることもある。 → コマンド名に続けて引数としてコマンドに渡したい値のリストを指定する。 引数はコマンド名に続けてスペース区切りで指定する。引数として指定可能な値の数は各コマンドにより異なる。 【参考】 引数とオプション コマンド実行時に指定する値には引数とオプションがある。引数は実行に使用されるファイル名や出力されるメッセージなどを指定するのに使用される。 一方、オプションは -f などのように - (ハイフン) とアルファベット1文字で表記され、主にコマンドの振る舞い方を指定する目的で使用されるものである。 また、オプションは -a -

    引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 1