タグ

bashに関するy_uukiのブックマーク (14)

  • シェルスクリプトの入門書 「新しいシェルプログラミングの教科書」を執筆した - mollifier delta blog

    「新しいシェルプログラミングの教科書」というシェルスクリプトの入門書を執筆しました。 2017年11月21日発売です。 新しいシェルプログラミングの教科書 作者: 三宅英明出版社/メーカー: SBクリエイティブ発売日: 2017/11/21メディア: 単行この商品を含むブログを見る 目次 シェルってなんだろう シェルスクリプトとは何か シェルスクリプトの基 変数 クォーティング 制御構造 リダイレクトとパイプ 関数 組み込みコマンド 正規表現と文字列 シェルスクリプトの実行方法 シェルスクリプトのサンプルで学ぼう シェルスクリプトの実用例 テストとデバッグ 読みやすいシェルスクリプト 内容 bashのシェルスクリプトを書く方法について解説したです。 変数、制御構造(if文など)、関数などbashの基的な文法から始まって、実際に役に立つシェルスクリプトを作成して、そのテストとデバッグ

    シェルスクリプトの入門書 「新しいシェルプログラミングの教科書」を執筆した - mollifier delta blog
  • シェルスクリプトはどのシェルで書くとよいのか - mollifier delta blog

    昨日紹介した通り、「新しいシェルプログラミングの教科書」というを執筆しました。 新しいシェルプログラミングの教科書 作者: 三宅英明出版社/メーカー: SBクリエイティブ発売日: 2017/11/21メディア: 単行この商品を含むブログを見る 名前のとおり、シェルスクリプトの書き方を解説したです。 そのを書き始めるのにあたって、どのシェルでシェルスクリプトを書くのかを決める必要がありました。 シェルの種類はいくつもありますが、その中でも有力な候補がBourne Shellとbashです。 Bourne Shellは/bin/shとしてインストールされている、伝統的なシェルです。 bashはたいていのLinuxで標準のシェルとして設定されていて、よく使われているシェルです。 どちらもシェルスクリプトを実装するシェルとしてよく使われます。 両方を解説するという手もありましたが、執筆の負

    シェルスクリプトはどのシェルで書くとよいのか - mollifier delta blog
  • 何もしない組み込みコマンド ":" (コロン)の使い道

    Bash でシェルスクリプトを勉強していくと出会うのが : (コロン)という名前の組み込みコマンド。このコマンドは何もしないコマンドです。 こんなコマンドの存在は不思議だなと思う反面、C言語にも void という型があったり(関数のような形で存在するのは JavaScript とかですね)、LaTeX にも \relax があったり、何もしない命令というものは機械語の NOP からある普通のものです。 この Bash の : の使い道についてまとめてみました。 何か書かなければならないところに仮置きする 例えば「ここに制御構造を置くんだけど、この節に入るものは後で書くんだけどな〜」といった場合、制御構造の節の中に何も書かないと Bash は構文エラーとなります。 #!/bin/bash arg="$1" if [ -z "$arg" ] ; then echo "デフォルトモード開始" e

    何もしない組み込みコマンド ":" (コロン)の使い道
    y_uuki
    y_uuki 2016/02/13
  • そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita

    Shell Script Advent Calendar 2015 4日目 の投稿です。 以前から自分用にメモしていたものを文字起こししました。 はじめに 仕事でシェルを使い始めて3年くらい経ちました。 途中、pythonruby でスクリプト作ったり、ちょっと zsh に浮気したりしましたが、なんだかんだで今も Bash を使うことが多いです。 この3年間、スーパーシェル芸人(@ebanさん)にご教授頂いたり、Golfしたり(@ebanの影響)、シェル芸勉強会に参加したり(@ebanの影響)してきました。 そんな3年間のまとめとして、シェルスクリプト初めましてだった3年前の私に向けたTips集を書いてみました。 趣旨 各項目ごとに、まず初心者(過去の私がやってた)あるある実装を例示して、その次に、より良さげな実装を例示する構成としています。 実行環境 OS Mac OS X Yos

    そのシェルスクリプトもうちょっとシンプルに書けそう Tips集(Golf/シェル芸ではない) - Qiita
    y_uuki
    y_uuki 2015/12/05
  • Other Comparison Operators

    7.3. Other Comparison OperatorsA binary comparison operator compares two variables or quantities. Note that integer and string comparison use a different set of operators. integer comparison -eqis equal to if [ "$a" -eq "$b" ] -neis not equal to if [ "$a" -ne "$b" ] -gtis greater than if [ "$a" -gt "$b" ] -geis greater than or equal to if [ "$a" -ge "$b" ] -ltis less than if [ "$a" -lt "$b" ] -lei

    y_uuki
    y_uuki 2015/11/10
  • ローカルのシェルスクリプトをリモート実行する - どこでも見れるメモ帳

    はじめに 「ほぼ」同じ構成のサーバがN台あって,それぞれに対して同じスクリプトを実行したい。このときスクリプトはひとつに集約したい(=各サーバにスクリプト配置したくない)。こういうときって、どうするのが定番なんだろう・・・— Kensho (@ni66ling) February 14, 2015 ローカルのスクリプトをリモートで実行したいけどどうやれば?という話. どうやるのが定番なのか?は結局わかっていないが,一応できるにはできたのでメモ. やりかた sshコマンドにパイプでローカルのスクリプトを引き渡す.*1 $ cat [local_script.sh] | ssh [user]@[host] bash 補足: ローカルにおける変数をリモートスクリプト内で使うには プロセス置換*2を用いる. $ param="local" $ cat <(echo -e "param=\"${pa

    ローカルのシェルスクリプトをリモート実行する - どこでも見れるメモ帳
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
  • bashスクリプトで子プロセスを全部殺すイディオム - Qiita

    シェルスクリプトでバックグラウンドで子プロセスを動かしている場合、何も考えずに書くと元のプロセスを殺しても子プロセスが残ってしまいます。例えばこんな風に書くと:

    bashスクリプトで子プロセスを全部殺すイディオム - Qiita
  • bashで素晴らしく生産性を上げるための10のテクニック | Yakst

    よく使うコマンドの組み合わせを関数として.bashrcに書いておく事で、色々な操作が簡単になる。筆者の.bashrcとそこに書かれた実用的な関数のサンプル、使用例。 (訳者注) 原文タイトルが「Ten tips for wonderful bash productivity」なので、10のテクニックというタイトルにしていますが、実際には9つしかありません。原文筆者に指摘したところ人も自覚されていなかった模様?です。悪しからず。 私はいつも自分のbashの環境をいじったり直したりしています。同じような問題に何度も遭遇しては、その度に解決策を探さねばなりません。うんざりして座り込んでしまうまでそれは続きます。お前いつも座って仕事してるだろって? ええ、でももう皆さんお分かりでしょう。そういう場合は、カスタム関数を作って、それを.bashrcに書き込んで、ログインする可能性のあるマシン全部に入

    bashで素晴らしく生産性を上げるための10のテクニック | Yakst
  • Bash specially-crafted environment variables code injection attack

    This article was originally published on the Red Hat Customer Portal. The information may no longer be current. Update 2014-09-30 19:30 UTC Questions have arisen around whether Red Hat products are vulnerable to CVE-2014-6277 and CVE-2014-6278.  We have determined that RHSA-2014:1306, RHSA-2014:1311, and RHSA-2014:1312 successfully mitigate the vulnerability and no additional actions need to be ta

    Bash specially-crafted environment variables code injection attack
    y_uuki
    y_uuki 2014/09/26
  • シェルスクリプトでハマった件→【募】ステキな回避方法 - (ひ)メモ

    追記: 解答編を下の方に書きました!!! 追記: お題に不備があったので変更しました>< あとgistに一式置いたので簡単にテストできます!! https://gist.github.com/hirose31/6232206 git clone https://gist.github.com/6232206.git oreno cd oreno ./test.sh source_me.sh ... シェルは GNU bash, version 4.1.5(1)-release です。 こんな source_me.sh と、 case $PATH in */oreno/bin*) : # do nothing ;; *) . orenorc LOADED_ORENO=1; export LOADED_ORENO ;; esac orenorc ってファイルがあって、 ORENO_HOME="

    シェルスクリプトでハマった件→【募】ステキな回避方法 - (ひ)メモ
    y_uuki
    y_uuki 2014/03/24
  • bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌

    @hirose31 さんが「シェルスクリプトでハマった件→【募】ステキな回避方法」でお題を出されていて、それに回答してみました。 その内容はリンク先を見てもらうとして、回答の中で使ったbashのプロセス置換について書かれた記事をあまり見ないので、回答で使ったプロセス置換のことをエントリにしてみたいと思います。 最初に注意点ですが、プロセス置換の機能は、bashやzsh*1の機能でPOSIX互換の機能ではありません。そのため、使用時には、対応していないシェルでは使えませんし、bashで使う場合も /bin/sh ではなく /bin/bash を明示的に指定する必要があります。たとえば、プロセス置換を使ったスクリプト「script.sh」に対して"$ bash script.sh" というコマンドは成功しますが、"$ sh script.sh" というコマンドは失敗します。この辺りの違いは「/

    bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌
    y_uuki
    y_uuki 2014/03/24
  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 1