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](https://cdn-ak-scissors.b.st-hatena.com/image/square/b8340e1f40218057474559a21b3e028bd82d927c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTA1NDglMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODE3NDc_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9Y2I0MTBhMjUwMmIyM2VmNmRiMjE3NjZjZTVlMzUyMDU%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Dd47d83b46ab9be200e3aa9959eeddf64%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9YmFzaCUyRnpzaCUyMCVFMyU4MSVBRSVFMyU4MyU5MSVFMyU4MyVBOSVFMyU4MyVBMSVFMyU4MyVCQyVFMyU4MiVCRiVFNSVCMSU5NSVFOSU5NiU4QiUyOCUyMyUyQyUyMCUyNSUyOSVFMyU4MSVBRSVFOCVBNiU5QSVFMyU4MSU4OCVFNiU5NiVCOSVFMyU4MSU4NCVFMyU4MiU4RCVFMyU4MSU4NCVFMyU4MiU4RCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPTExZTdlZWI4MzY5MDE4MmFlYTMzMTk4MDA1YmFhMTUz%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB5dXl1Y2h1MzMzMyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTI4NDgyZmJhMWQ2ZjQyZmQyNWFlZmJlYWZlNDg0Zjc3%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D1db2a3d763a42a1bf6327c829c3daf80)
はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニア・インフラエンジニア)向けのものではありません。 年に数回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 これをぱっと見て
他の言語をを書き慣れてから、シェルスクリプトを書こうとするとしょうもない部分でハマったりすることがあります。「簡単な処理だからシェルスクリプトで書くか」と思っても無駄に時間がかかってしまっては仕方ないですよね。 今回は初めてシェルスクリプトを書くときに、ハマりそうな点について説明をしたいと思います。 実行権限をつける 単純にファイルを生成しても下記の用に実行しようとしても実行はできません。 # touch test # ./test sh: ./test: Permission denied # touch foo # ./foo sh: ./foo: Permission denied これはファイルに実行権限がついていないため、起きる現象です。 chmodコマンドを使って実行権限をつけてやりましょう。 # chmod +x test # ./test # chmod +x foo #
シェルスクリプト シェルのプログラミングは、ファイルからの入力で行う。コマンドラインからの入力と違い、いくつもの命令を一括して実行していく事ができるというのが利点である。この、いくつもののコマンドを手順に応じて編集したファイルをシェルスクリプトと言う。 シェルは他プログラミング言語と同様に、条件分岐、繰り返しといった制御命令も持っている。これらを用いる事で、複雑な手順を持ったシェルスクリプトを作成する事も可能である。 シェルスクリプト作成 シェルスクリプトの文法は、コマンドラインからの入力のそれと基本的に同じである。大きな違いは、シェルスクリプトはまとめてテキストファイルとして記述し、実行する事ができるという点である。 それでは、カレンダーを表示するC-Shellスクリプトを作成してみる。 (viを用いて【List 1】を入力) 【List 1】 シェルスクリプトを実行するには シェルスク
MySQLのSQL文を、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(Domain-Specific Language)とは、特定の作業の遂行や問題の解決に特化して設計されたコンピュータ言語。特定用途向けのプログラミング言語やマークアップ言語、モデリング言語などが該当する。 特定の領域や対象に関連する処理や定義の記述に特化した語彙や仕様を持つ言語のことを指し、C言語やXMLのように特定の用途や目的を持たない汎用のプログラミング言語やマークアップ言語などと対比される。 ただし、このような機能があればDSLであるとか、このような水準に達していれば汎用言語であるといったような厳密な基準や定義はなく、Webページの動的な生成に特化したDSLとして産まれながら、次第に機能が拡張され汎用的になっていったPHPのような例もある。 DSLには対象や領域ごとに様々な言語がある。各分野で特に著名な例としては、Webページ記述のためのHTML、スタイル記述言語のCS
を書いておく。以下解説。 set -e エラーがあったらシェルスクリプトをそこで打ち止めにしてくれる(exit 0以外が返るものがあったら止まるようになる)。「あっあれここでうまくいってないからデータ準備できてないのにあれあれっもうやめて!」ってなるのを防げる。 set -u 未定義の変数を使おうとしたときに打ち止めにしてくれる。Perlでいうuse strict 'vars';的なもの。 って気軽な気持ちで書いてしまって、「ん、やたら時間かかると思ったらスペルミスうわなにをするやめ」ってなるのを防げる。 一部だけ例外にしたい はてなブックマークのコメントより -e は command1 || command2 みたいなことが出来なくなるの使うことないな。-uは付けといて良いが。 確かにおっしゃるとおりですね。コマンドの失敗を考慮して書いている部分については(もしくはやたらexit 0以外
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く