タグ

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

  • bash/zsh のパラメータ展開(#, %)の覚え方いろいろ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    bash/zsh のパラメータ展開(#, %)の覚え方いろいろ - Qiita
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

  • 【 [ 】 条件式の真偽を判定する

    条件式を評価し,0(真)か0以外(偽)の戻り値を返す。以下の例のようにifやwhileの条件式の部分に埋め込むと応用が効く。なお,以下の例で,ifの条件式を[コマンドを使わないで記述すると,「test $? != 0 」になる。

    【 [ 】 条件式の真偽を判定する
  • 初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ

    他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #

    初めてシェルスクリプトを書くときに知っておきたいこと - Unix的なアレ
  • (3) UNIX beginner ___C-Shellプログラミング___

    シェルスクリプト シェルのプログラミングは、ファイルからの入力で行う。コマンドラインからの入力と違い、いくつもの命令を一括して実行していく事ができるというのが利点である。この、いくつもののコマンドを手順に応じて編集したファイルをシェルスクリプトと言う。 シェルは他プログラミング言語と同様に、条件分岐、繰り返しといった制御命令も持っている。これらを用いる事で、複雑な手順を持ったシェルスクリプトを作成する事も可能である。 シェルスクリプト作成 シェルスクリプトの文法は、コマンドラインからの入力のそれと基的に同じである。大きな違いは、シェルスクリプトはまとめてテキストファイルとして記述し、実行する事ができるという点である。 それでは、カレンダーを表示するC-Shellスクリプトを作成してみる。 (viを用いて【List 1】を入力) 【List 1】 シェルスクリプトを実行するには シェルスク

  • MySQLとシェルスクリプト – OpenGroove

    MySQLSQL文を、OSのコマンドラインまたはシェルスクリプトから実行したい時の例を、いくつか。 まずコマンドラインからサクッと実行するには、-eオプションを利用。 $ mysql -u user_name -pxxxxxx -e “SQL文” 「;」で区切れば複数のSQL文発行も可能。 $ mysql -u user_name -pxxxxxx -e “SQL文;SQL文;SQL文” 以下の方式でも可。 $ echo “SQL文;” | mysql -u user_name -pxxxxxx これらのコマンドラインをそのままシェルスクリプトに書いてもいいわけだ。 次にSQL文をファイルに記述しておいて読み込ませる方法。 “file_name”にはSQL文が記述されているものとする。 $ mysql -u user_name -pxxxxxx < file_name 上記はSQL文にお

  • DSLとは - IT用語辞典

    概要 DSL(Domain-Specific Language)とは、特定の作業の遂行や問題の解決に特化して設計されたコンピュータ言語。特定用途向けのプログラミング言語やマークアップ言語、モデリング言語などが該当する。 特定の領域や対象に関連する処理や定義の記述に特化した語彙や仕様を持つ言語のことを指し、C言語やXMLのように特定の用途や目的を持たない汎用のプログラミング言語やマークアップ言語などと対比される。 ただし、このような機能があればDSLであるとか、このような水準に達していれば汎用言語であるといったような厳密な基準や定義はなく、Webページの動的な生成に特化したDSLとして産まれながら、次第に機能が拡張され汎用的になっていったPHPのような例もある。 DSLには対象や領域ごとに様々な言語がある。各分野で特に著名な例としては、Webページ記述のためのHTML、スタイル記述言語のCS

    DSLとは - IT用語辞典
  • シェルスクリプトを書くときはset -euしておく - Qiita

    を書いておく。以下解説。 set -e エラーがあったらシェルスクリプトをそこで打ち止めにしてくれる(exit 0以外が返るものがあったら止まるようになる)。「あっあれここでうまくいってないからデータ準備できてないのにあれあれっもうやめて!」ってなるのを防げる。 set -u 未定義の変数を使おうとしたときに打ち止めにしてくれる。Perlでいうuse strict 'vars';的なもの。 って気軽な気持ちで書いてしまって、「ん、やたら時間かかると思ったらスペルミスうわなにをするやめ」ってなるのを防げる。 一部だけ例外にしたい はてなブックマークのコメントより -e は command1 || command2 みたいなことが出来なくなるの使うことないな。-uは付けといて良いが。 確かにおっしゃるとおりですね。コマンドの失敗を考慮して書いている部分については(もしくはやたらexit 0以外

    シェルスクリプトを書くときはset -euしておく - Qiita
  • 1