関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ShellScriptに関するnari_exのブックマーク (16)

  • シェルスクリプトで、ある順番以降の引数を取得する - Qiita

    $#には、引数の数が格納されています。なので、この場合は3番目以降の全部なので、全体の数から、いらない2つを引いているわけです。 てか、↑をやんなくても、3番目以降「全部」なら${@:3}でもよかった。つまり、開始の順番だけでよい。3番〜5番目とかなら「3番目以降の3つ」という意味で ${@:3:3}と書く必要がある。 応用例として、2個の引数のあと、--以降にオプションとして解釈されたくない文字列がある場合、以下のように書けます。

    シェルスクリプトで、ある順番以降の引数を取得する - Qiita
  • Bash For Loop Examples - nixCraft

    How do I use bash for loop to repeat certain task under Linux / UNIX operating system? How do I set infinite loops using for statement? How do I use three-parameter for loop control expression? A ‘for loop’ is a bash programming language statement which allows code to be repeatedly executed. A for loop is classified as an iteration statement i.e. it is the repetition of a process within a bash scr

    Bash For Loop Examples - nixCraft
  • Better Bash Scripting in 15 Minutes

    The tips and tricks below originally appeared as one of Google's "Testing on the Toilet" (TOTT) episodes. This is a revised and augmented version. Safer Scripting I start every bash script with the following prolog: #!/bin/bash set -o nounset set -o errexit This will take care of two very common errors: Referencing undefined variables (which default to "") Ignoring failing commands The two setting

    Better Bash Scripting in 15 Minutes
  • シェルスクリプトを書く時覚えておくこと一選! - rrreeeyyy.com

    Hi, I'm @rrreeeyyy

    nari_ex
    nari_ex 2014/04/21
    初心者お断りエントリ
  • シェルスクリプトを書くときはset -euしておく - Qiita

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

    シェルスクリプトを書くときはset -euしておく - Qiita
  • test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

    test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、15日目の記事です。 書くのが遅れ、ネタは尽きかけ、 マニアックさやニッチさが足りなくなってきているような気がします。 ふつうの内容ですみません。 今日は test, [, [[ コマンドの違いについてざっくり紹介します。 [[ がある bash, ksh, zsh ならば test と [ の使用は避け、 [[ を使用すべきです。 [ は慎重に使わないと様々な罠にかかるため危険です。 (翌日のネタも併わせてどうぞ) test と [ の違い どちらもシェルの組込みコマンドです。名前が違うのと [ は最後の引数を ] にしなければいけない縛りがある以外、 動作まった

  • `var=''; test -n $var` はどう評価される? - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

    `var=''; test -n $var` はどう評価される? - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、16日目の記事です。 ネタ枯渇と締切の危機の中、@hirose31 さん からネタを提供していただきました。 ありがとうございます! ありがとうございます! ありがとうございます! ありがとうございます! ありがとうございます! ありがとうございます! ありがとうございます! (コピペ) ネタは一応まだ残っているのですが、いかんせん書くのに時間がかかりそうなものばかり。 そこで今日は頂いたネタでお茶を濁したいと思います。 test コマンドにはいくつか罠がありますが、 その一つの紹介です。 $var が空文字列のとき [ -n $var ] は

  • preline

    nari_ex
    nari_ex 2014/04/08
    preline コマンド、存在すら知らなかった
  • シェル以外からexpectしててハマったメモ - blog::wnotes.net

    また恥ずかしながらハマったメモ記事です>< シェル以外からexpectすると上手くいかなかった シェル以外、と書いてますが、今回はPHPのexec()でのケースです。おそらくcronでもなんでもシェル以外からの起動だと同じだと思います。 やりたかったこと PHPからシェルスクリプトを起動して、別のサーバに自動でscp転送をかける、ということがしたかったんです。 で、別サーバは認証鍵が必要なので、自動でパスフレーズを入力するためにexpectを使おうかなという感じで。 ※あとで知って残念な気持ちになったんですが、expectでの自動化よりも、パスフレーズ無しの認証鍵で、authrized_keysによるコマンド制限などを行う方がよりよい方法だと知りました…(´・ω・`) 以下のサイトが参考に。 ssh scp sftp の正しい自動実行方法 sshで指定したコマンドしか実行できない公開鍵を作

  • bash によるオプション解析 - Qiita

    すこし記事が長いため、簡単なアウトラインを書いておきます。要点だけ掴みたい場合は、最終項の「まとめ」を読むのがいいかもしれません。 コマンドライン引数の一般的な解析手法 それぞれの特徴 〜 getopt と getopts の違い getopts(メリット・デメリット) getopt(メリット・デメリット) 自前で解析しちゃう(唯一のデメリット) まとめ ============================= コマンドライン引数を処理する一般的な手法として、 getopts getopt shift などで自力で解析 といった具合に、上から順に考えつくかと思います。getopt(3) は UNIX において、コマンドの引数を処理する一般的な C 言語のライブラリ関数です。それを用いて実装されたコマンドが getopt(1) です。Bourne シェル系だと内部関数になりますが、同系統の

    bash によるオプション解析 - Qiita
  • bash 配列まとめ - Qiita

    Help us understand the problem. What are the problem?

    bash 配列まとめ - Qiita
  • いまさらgrepが10倍高速化したのはなぜか – はむかず!

    最近GNU grepコマンドの最新バージョンがリリースされ、速度が10倍になったとのアナウンスがあった。それを聞いて、なんであんな枯れた技術に10倍もの高速化の余地があったのだろうと不思議に思った人も多いだろう。 ニュース記事:grepコマンド最新版、”-i”で10倍の高速化 家のリリースノート:grep – News: grep-2.17 released [stable] 今回のリリースでは正確には、マルチバイトロケールで、-iオプション(–ignore-case、つまり大文字小文字を区別しないオプション)をオンにした時の速度が10倍くらいになったそうだ。 なぜそんなに速くなったのか?逆を言えば今までなぜそんなに遅かったのか? そもそも、多くの日人にとって「大文字小文字の区別」というと英語のアルファベットか、せいぜいフランス語とかドイツ語とかのアクサン記号・ウムラウトがついたものく

    nari_ex
    nari_ex 2014/02/25
    grep の-i オプションを利用した時の性能が10倍向上した話
  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
  • コマンド実行でシェルが怖いなら使わなければいいじゃない - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

    http://blog.ohgaki.net/os-command-escape-shell-spec-command-implementation 「えすけーぷじゅうよう!!」を強調して言いたいからなのかシェルの理解が足りないからなのか、 意図がよくわからない文言やら説明が散見されますが、きりがないのでそれらはスルーします。 (シェルについては、なんで関係ない tcsh の話が出てくるんだとか、 位置パラメーター展開に $* 使うなとか、色々) 特に気になったのが以下の文章です。(強調は私によるもの) OSコマンドはOSが提供するシェルで実行されます。 シェルはテキストインターフェースを持ち、 テキストでコマンドとオプションを受け取り実行します。 例示した脆弱なPHPプログラムの場合、 ユーザーからの入力に対しセキュリティ処理を一切してないため、 簡単にサーバーを乗っ取られる可能性があり

  • Make grep 50x faster

    Found this neat trick in Brendan Gregg's Blazing Performance with Flame Graphs talk. Switching to LANG=C improved performance by 2000x In a quick test I directly got a performance gain of factor 50.22. This is quite an achievement for only changing one environment variable. real:~# du -sh /var/log/querylog 148M /var/log/querylog real:~# time grep -i e /var/log/querylog > /dev/null real 0m12.807s u

  • run-partsが認識するファイル名ではまった - うまいぼうぶろぐ

    run-parts - run scripts or programs in a directory 指定ディレクトリ以下のスクリプトを順次実行するコマンド。/etc/crontabで run-parts /etc/cron.dailyこんな感じで使われている。 特徴 実行はアルファベット順(ASCIIコード順? 数字、英大文字、英小文字の順) サブディレクトリは無視 option -aで引数を指定すると、各スクリプトに共通の引数が渡せる -v verbose ファイル名に一部制限あり ファイル名の制限 debian系とredhat系で動きが違う。これではまった。debianのはELFのバイナリで、redhatはシェルスクリプト。 debian ファイル名に使える文字[0-9A-Za-z-_] "."は使えない (hoge.shは無視される) redhat 末尾が"~"か","以外のファイ

    run-partsが認識するファイル名ではまった - うまいぼうぶろぐ
  • 1