タグ

bashに関するhiroktsのブックマーク (23)

  • Minimal safe Bash script template

    Published on December 14, 2020   ·   Updated on December 16, 2020 Bash scripts. Almost anyone needs to write one sooner or later. Almost no one says “yeah, I love writing them”. And that’s why almost everyone is putting low attention while writing them. I won’t try to make you a Bash expert (since I’m not a one either), but I will show you a minimal template that will make your scripts safer. You

    Minimal safe Bash script template
    hirokts
    hirokts 2021/01/18
  • シェルスクリプト オプション解析テンプレート - Qiita

    オプション解析用テンプレート いつもオプション解析の時に調べたりすると忘れるので、テンプレート オプションを指定した場合で引数がないといけない場合、なくてもよい場合など。好きに改造して使ってください。 #!/bin/bash PROGNAME=$(basename $0) VERSION="1.0" HELP_MSG="'$PROGNAME -h'と指定することでヘルプを見ることができます" # ヘルプメッセージ usage() { echo "Usage: $PROGNAME -a arg [-b arg] param" echo echo "オプション:" echo " -h, --help" echo " --version" echo " -a, --long-a <ARG> <必須>" echo " -b, --long-b <string> [任意] *オプション指定時は引数を

    シェルスクリプト オプション解析テンプレート - Qiita
  • シェルスクリプトのテストフレームワーク Bats を試してみた - kakakakakku blog

    シェルスクリプトのテストフレームワーク Bats を試してみた. github.com たまにコントリビュートをしている Amazon ECS (Elastic Container Service) のデプロイツール ecs-deploy のテストコードで Bats が使われているので,少し書いたことがあり,もっと詳しく調べてみようと思った. github.com Bats は現在もメンテナンスされている もともとの Bats は sstephenson/bats にあり,現在は bats-core/bats-core に移っている.以下の Issue などを読むと,コミュニティの動きがわかる. github.com github.com インストール Bats は様々なインストール方法がある.まず,用意されている install.sh を試してみた. $ git clone git@gi

    シェルスクリプトのテストフレームワーク Bats を試してみた - kakakakakku blog
    hirokts
    hirokts 2018/05/15
  • ターミナルの作業が捗るかもな小技5つ - Qiita

    ターミナルで作業する事が多いんですが、そのときによく使っているちょっとしたときに便利なコマンドなどを紹介します。 bashで説明します。 (zsh でもつかえるし、もっと便利になる物も多いですが) 1. 並列な階層に複数ディレクトリを一度に作成 {} を利用します。 aa,bb,cc というディレクトリを作るとき。

    ターミナルの作業が捗るかもな小技5つ - Qiita
    hirokts
    hirokts 2018/03/27
  • ターミナル 作業効率化 tips集 - Qiita

    はじめに エンジニアであればターミナル操作はとても多いと思います。(iTermを使っていますが。) いろいろな方のターミナル操作を横で見てきましたが、経験のあるエンジニアの方はターミナル操作が格段にはやいです。一方、駆け出しのエンジニアの方(学びたての人)は同じ操作をするにしても時間がとてもかかってしまっています。 にも関わらず、各プログラミング言語の習得にばかり目がいき、ターミナル操作をもっと効率よくしようとするにはなかなか至らないのが現実なのだろうと思います。 そこで、ターミナル操作の作業効率を上げる操作方法を僕なりにまとめてみようと思います。 ここで少しばかり時間を使って、ストレスのない、スピーディーな作業が出来るようになれるとハッピーですよね! ★は独断でつけた重要度です。 もっと効率のよい操作方法と知っているという方がいらっしゃいましたら、コメントにてご教示頂けますと幸いです。

    ターミナル 作業効率化 tips集 - Qiita
  • Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね

    Bashでスクリプトを書く際によく自分が使っている小技や関数などです。 またBashでは他のプログラミング言語以上に$や:などの記号の使い方が独特でググラビリティが低いので、基文法などもチートシートとしてまとめておきます。 基文法 変数と配列 制御構文 while for-in if - elif - else if文のone-liner 文字列比較 文字列が等しい (=) 文字列が等しくない (!=) 空文字、文字列長が0 (-z) 空文字でない、文字列長が0でない (-n) 数値比較 数値が等しい (-eq) 数値が等しくない (-ne) 数値がより小さい (-lt) 数値がより大きい (-gt) ファイルの判定 存在する (-e) ファイルである (-f) ディレクトリである (-d) シンボリックリンクである (-L) 関数 便利なスニペット 実行スクリプトがあるディレクトリを

    Bashスクリプトのチートシートと便利なスニペットまとめ - オープンソースこねこね
    hirokts
    hirokts 2018/01/21
  • 位置パラメーターの一括展開 $* $@ "$*" "$@" の違いを知れ!! - Shell Script Advent Calendar 2016 - ダメ出し Blog

    位置パラメーターの一括展開 $* $@ "$*" "$@" の違いを知れ!! - Shell Script Advent Calendar 2016 - ダメ出し Blog Shell Script Advent Calendar 2016 の 15日目の記事です。 位置パラメーター (Positional Parameters) の紹介と、 その値をすべて展開する $*, $@, "$*", "$@" の違いについて解説します。 $*, $@, "$*", "$@" の違いを認識し使い分けできるかどうかは、 シェルをちゃんと理解しているかどうかの指標の一つと言えるのではないかと思います。 残念ながら、適切な位置パラメーター展開を用いていないシェルスクリプトが珍しくありません。 あなたのシェルスクリプトは大丈夫ですか? あなたの好きな◯◯のソースコードや配布物に付属のシェルスクリプトも要チ

    hirokts
    hirokts 2017/11/17
  • 【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita

    はじめに Linuxを学ぶ上で 先に教えて欲しかったことを書きます。 つまりは、教える機会があれば先に伝えておきたいことです。 便利なキー操作や誤りがあればぜひ教えてください。 また、この記事に対してmorimorihogeさんの分かりやすい補完がありますので、ぜひそちらと合わせてお読みください 流れ 1.キーボード操作編 知ってると便利なショートカット。 2.用語・概念編 知ってるとひらめくかも。 3.コマンド編 知っておくべき重要なコマンド、時短になるコマンド。 キーボード操作編 補完機能 Tab連打。 連打すると勝手にlsしてフォルダ内のファイル一覧を教えてくれる。 候補が絞られると勝手に名前を補完してくれる。 入力間違いでもBackspaceやDeleteできない ^H^H^Hや^[[3~、^[[Dが表示されて涙目。 Ctrl + U で入力したものがきれいに消える。 パスワードを

    【学習メモ】LinuxCUI初心者が早く知りたかったコマンド(操作も) - Qiita
    hirokts
    hirokts 2017/07/29
  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
    hirokts
    hirokts 2017/03/22
  • bash起動時の設定ファイル実行順序 - Qiita

    図示 bash_profileやらbashrcやらややこしかったので起動順を図示してみた。 ログイン起動:CUIモードやsshでログインした時 対話起動:GUIからターミナルを開いた時や、bashをコマンドで直接実行した時 絶対こうだよと断言するほど自身はないんだけど、概ね次の理解で良さそう /etc系はマシン固有の環境(ユーザにかかわらない)設定を記述 ~/系はユーザ固有の設定を記述 → root以外のユーザが触るのは基ここ profile系はbash環境にログインした時に実行される rc系はbashを起動した時に実行される →/etc/bash.bashrcは例外だが今はほぼ使われて無い? その他 cシェルには.loginというファイルがあるらしい。~/.bash_loginはそれに由来するファイル → どっちを使ってもいいけど普通は.bash_profileを使っとけということ?

    bash起動時の設定ファイル実行順序 - Qiita
    hirokts
    hirokts 2017/01/03
  • bashでmemcachedを実装しました! - Qiita

    TL;DR bashとsocatコマンドを利用してmemcachedを実装しました。 MakeNowJust/bashcached - GitHub 文 はじめに bashで実装したmemcachedです https://t.co/5UQk8x3wqw — さっき作った@3日目東R-13a (@make_now_just) 2016年10月28日 bashでmemcachedを実装したらHacker Newsでちょっと話題になったみたいなので記事にします。 とりあえずインストール方法 インストール方法です。 まずsocatが必要なので、

    bashでmemcachedを実装しました! - Qiita
  • 入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    入力と出力 リダイレクションとパイプ コマンドの実行結果は通常、標準出力であるディスプレイに出力される。この実行結果はリダイレクション(>、>>)やパイプ(|)を使用することにより、ディスプレイではなくテキストファイルやコマンドに対して出力するように切り替えることができる。 また、リダイレクションはコマンドの出力先をテキストファイルに切り替える以外にも、これとは逆にコマンドへの入力元をテキストファイルに切り替えることもできる。 なお、リダイレクションとパイプは次のように使い分ける。 リダイレクション データを渡す対象がファイルである場合はリダイレクションを使用する。 パイプ データを渡す対象がコマンドである場合はパイプを使用する。 リダイレクション [>, », <] コマンドの出力を file へ上書きする → コマンドの実行結果の出力先を、ディスプレイからファイルへ切り替えたい場合は、

    入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス
    hirokts
    hirokts 2016/10/14
  • Big Sky :: Bash on Ubuntu on Windows の最高の端末環境を教えてやるからちょっと来い。

    Bash on Ubuntu on Windows (以下 BoW) は Windows コマンドプロンプトを使って実行される。今までであれば Windows のコマンドプロンプトはエスケープシーケンスを認識しなかったので cmd.exe そのものでは vt100 等の端末環境を用意できませんでした。しかし Windows10 の cmd.exe では新しいコンソールモードが用意されています。 Console Virtual Terminal Sequences (Windows) Virtual terminal sequences are control character sequences that can control cursor movement, color/font mode, and other operations. https://msdn.microsoft.c

    Big Sky :: Bash on Ubuntu on Windows の最高の端末環境を教えてやるからちょっと来い。
  • [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 マイクロソフトは開発者向けの年次イベント「Build 2016」を米サンフランシスコで開催しています。初日の基調講演では、Windows 10が登場して1年を記念した大型アップデートWindows 10 Anniversary Update」を発表。 その中で、UNIXやLinuxで使われているシェルの1つ「Bash」がWindowsに搭載されると発表がありました。 物のBashがWindowsで走る Kevin Gallo氏。Corporate Vice President, Windows and Devices Group。 Bash on Windowsを発表する。 これは物のBashだ。仮想マシンでもクロスコンパイルされたツールでもなく、ネイティブのUbu

    [速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016 - Publickey
  • Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口

    マイクロソフトのハンセルマンのBlog: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10 Ubuntuの中の人のBlog: Ubuntu on Windows — The Ubuntu Userspace for Windows Developers この2つのBlogで実態が明確になったのでまとめてみます。 使用可能になるOSまもなくリリースされる予定のWindows 10 ”Anniversary” アップデートで使用可能になります。このアップデートで、開発者向けの機能として追加されます。 機能の追加で、Windowsの設定で開発者モードを有効にすると使用できるようになります。これでネイティブなユーザー モードのLinuxシェルが使えるようになり、bashを起動するとWind

    Windows で Ubuntu バイナリ(bash)が動作することの概略 - 蒼の王座・裏口
  • シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた

    シェルスクリプトは長くなると処理の境界が不鮮明になりがち。 コメントで処理の境界を表現する工夫はよく見かけるが、もっと良い方法はないか考えてみた。 :コマンド、&&演算子、複合コマンド()や{}を組み合わせて書くと、処理の境界線がはっきりする。

    シェルスクリプトの処理境界が鮮明になる「名前付きブロック記法」なるものを考えてみた
  • 何もしない組み込みコマンド ":" (コロン)の使い道

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

    何もしない組み込みコマンド ":" (コロン)の使い道
    hirokts
    hirokts 2016/02/13
  • bashの操作方法

    [Linux] コンソールでbashを使用している時の主なキー操作を以下に簡単にまとめます。 ------------[カーソルの移動関連]------------ [Ctrl]+[a] : カーソルを行の先頭に移動 [Ctrl]+[e] : カーソルを行の末尾に移動 [Ctrl]+[b] : カーソルを左に一文字移動 [Ctrl]+[f] : カーソルを右に一文字移動 [Esc]+[f] : 1単語右にカーソルを移動 [Esc]+[b] : 1単語左にカーソルを移動 ※Tera Termを使用している場合、[Setup]->[Keyboard]->[Meta key]にチェックを入れれば[Esc]の代わりに[Alt]キーが使えるようになります。 ------------[削除関連]------------ [Ctrl]+[d] : カーソルの右一文字を削除 [Ctrl]+[h] : カー

    hirokts
    hirokts 2016/01/07
  • そのシェルスクリプトもうちょっとシンプルに書けそう 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
    hirokts
    hirokts 2015/12/04
  • bash によるオプション解析 - Qiita

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

    bash によるオプション解析 - Qiita
    hirokts
    hirokts 2015/07/29