タグ

bashに関するhnishi2509のブックマーク (13)

  • What exactly was the point of [ “x$var” = “xval” ]? – Vidar's Blog

    In shell scripting you sometimes come across comparisons where each value is prefixed with "x". Here are some examples from GitHub: if [ "x${JAVA}" = "x" ]; then if [ "x${server_ip}" = "xlocalhost" ]; then if test x$1 = 'x--help' ; then I’ll call this the x-hack. For any POSIX compliant shell, the value of the x-hack is exactly zero: this comparison works without the x 100% of the time. But why wa

  • 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
    hnishi2509
    hnishi2509 2021/01/22
    なるほど
  • Linux 作業手順書からべた書きパスワードをなくすシンプルなアイディア - Qiita

    ※ 2018/07/21 追記。 お読みいただきましてありがとうございます! すみません、実はタイトルの割には「現在回しているイケてない運用をちょっとした工夫でサクッと改善する」ことを主眼としており、セキュリティのベストプラクティスではありません。。。 稿の例で挙げているコマンドのリスクにつきましては、 注意 の項を追加しましたのでご参照ください。 公開当初は「10いいねくらいもらえたら嬉しいなー」と思っていた程度だったのですが、まさかここまでたくさんの方に読んでいただけるとは。。。 もっと内容を精査しておくべきだったと反省しております。。。 いいねやコメント等反応頂けるのはとても励みになります。ありがとうございます! TL;DR 怖いですよね、セキュリティインシデント。 インフラ系でお仕事をしていると、 Linux にログインして操作する手順書を作る事が多くなります。手順書の中には認証

    Linux 作業手順書からべた書きパスワードをなくすシンプルなアイディア - Qiita
  • bash/readline for "move forward by whitespace-delimited word?"

    hnishi2509
    hnishi2509 2020/12/24
    bash readline 単語ごとに移動する key bind
  • Bash-5.1 release available

    Introduction ============ The first public release of bash-5.1 is now available with the URLs ftp://ftp.cwru.edu/pub/bash/bash-5.1.tar.gz ftp://ftp.gnu.org/pub/gnu/bash/bash-5.1.tar.gz and from the master branch of the bash git repository (http://git.savannah.gnu.org/cgit/bash.git/log/) and the usual GNU mirror sites. Bash is the GNU Project's Bourne Again SHell, a complete implementation of the P

  • 今さら聞けない!環境変数とシェル変数の違いと定義方法 - Qiita

    シェル変数に export をつけることで、環境変数となり、子プロセスでも利用できるようになる(変数はターミナルからログアウトもしくはexitするまで保持) $ export HOGE=aiueo なお $ HOGE=aiueo; export HOGE でも同じ。 使用例)export LANG=ja_JP.eucJP 永続的に変数の値を設定変更したいのであれば、 環境変数をログインする度に手で入力することはありません。~/.bashrc や ~/.bash_profile といったファイルで export 文を上のように書いておけば良いのです。 引用元:https://linuxshugendo.wordpress.com/2013/12/26/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%A3%E3%81%A6%E4%BD%95%E3%81%A

    今さら聞けない!環境変数とシェル変数の違いと定義方法 - Qiita
    hnishi2509
    hnishi2509 2020/12/19
    “シェル変数は現在実行中のシェルだけで有効な変数ですが,環境変数はシェルから実行したコマンドにも引き継がれる変数です。”
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
    hnishi2509
    hnishi2509 2020/12/15
    “set -Ceuo pipefail”
  • Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita

    コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m

    Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita
  • [Bash script] bash 4.3.48(1)-release - Wandbox

    hnishi2509
    hnishi2509 2020/10/02
    サブシェルでも set -e を適用
  • Bash の set -e で即座に終了する場合・しない場合

    Bash で set -e を設定しているときに,それによってスクリプトの実行が即座に終了する・しないを色んなケースで例示してまとめてメモしておくという,私以外の誰も得をしないことが決定的に明らかなエントリ. このエントリにおける約束事 以下で参照している実行例,およびドキュメントの記述は2018年8月4日現在(エントリ最終更新日)の最新である Bash 4.4 を対象にしている. 以下において,「コマンドが成功する」とは「コマンドがexit status 0 で終了すること」,「コマンドが失敗する」とは「コマンドが0以外の exit status で終了すること」とする. 以下の実行出力結果において, Did not exit immediately by `set -e'. が表示されている場合は set -e による終了が起こらなかった場合,それ以外は set -e による終了が起

    Bash の set -e で即座に終了する場合・しない場合
  • Bashの便利な構文だがよく忘れてしまうものの備忘録

    Bashでスクリプトを書く場合のポイントをまとめた Bashなどで書くシェルスクリプトは文法がシンプルで覚えると便利。他のプログラム言語だと何行もかかなければならないファイル操作や中身のデータ処理を、ちょちょいと数行レベルで書けとても強力だ。コマンドとの親和性が高い恩恵だろう1。 旧来バッチ処理で領を発揮するシェルスクリプトだったが、昨今はDockerDockerfileや起動スクリプトなど)で活用される機会も多いだろう。 しかしながら他のプログラム言語ではみられない記法があったり、逆に似た書き方もあったりと、混乱しがちなのもシェルスクリプトの特徴かもしれない。 いちいちGoogle先生に確認するのもめんどうなので、このページに整理した2。 主な参照先(よくお世話になっているページ): UNIXの部屋(68user's page) - http://x68000.q-e-d.net/~

    Bashの便利な構文だがよく忘れてしまうものの備忘録
  • When to wrap quotes around a shell variable?

    hnishi2509
    hnishi2509 2020/09/22
    bash variable を quote する理由
  • Bashのコマンド編集機能と履歴管理

    viスタイルのキー操作でコマンドラインを編集する vi(もしくはvim)は、どのLinuxにもほぼデフォルトでインストールされていて、非常によく使われる軽量なエディタである(emacsは追加インストールしないと利用できないことが多い)。そのため、bashにもvi風にキー操作ができる編集スタイルが用意されている。 ただしviは文字挿入モードやコマンドモード、カーソル移動モードなどを持つエディタなので、コマンドラインの編集にはやや使いづらい。そのためか、bashのデフォルトはemacsスタイルに設定されている。 viスタイルを利用するには「set -o vi」を実行する(emacsスタイルに戻すには「set -o emacs」を実行する)。

    Bashのコマンド編集機能と履歴管理
    hnishi2509
    hnishi2509 2020/09/02
    history 機能
  • 1