タグ

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

  • 関連タグはありません

タグの絞り込みを解除

programmingとProgrammingとbashに関するAmaiSaetaのブックマーク (13)

  • Batsを使ってシェルスクリプトをテストする

    はじめに この記事はシェルスクリプト&PowerShell Advent Calendar 2024の12日目として書かれています。 概要 BatsはBash用のテストフレームワークです。 何らかのプログラミング言語で書くまででもない簡単なスクリプトを書こうと思った際に、とはいえテストが欲しいと思って見つけたのがBatsでした。 今回は簡単なBatsのテストコードの紹介をします。 書いたコードはここに置いています。 今回使用したbatsコマンドはHomebrewで入れており、バージョンは1.11.0です。 シンプルなテストコード Batsのテストコードはシェルスクリプトとは別のファイルに書き、batsコマンドでそのファイルを実行することでテストを実行できます。 テストケースは@test "test case name" のように書けます。 #!/usr/bin/env bats @test

    Batsを使ってシェルスクリプトをテストする
  • Bashで$(cat foo.txt)していませんか?$(< foo.txt)しよう - Lambdaカクテル

    以下の文書はBashを使う前提の話。 Bashにはコマンド置換(Command substitution)というのがある。$(another-command)のように、$()でコマンドを括る記法だ。これを利用すると、括弧で括られたコマンドが実行され、その標準出力が文字列として取り出され、$()全体を置き換える。シェルスクリプトでは非常によく見る技術だ。 この$()でファイルの内容を読み出すというのを最近見た。このような用法は非常によく見る。 foo-command $(cat params.txt) しかし、より良い書き方があるのでこれを提唱したい。$(< params.txt)と書くことで全く同等のことができる。しかも速いのでこちらのほうが完全に上位互換となる。 foo-command $(< params.txt) この方法はBashのドキュメントのコマンド置換のコーナーにちゃんと書か

    Bashで$(cat foo.txt)していませんか?$(< foo.txt)しよう - Lambdaカクテル
  • getoptsを関数(function)の中で使う - Qiita

    # copy to your bash_profile or somewhere you write aliases, # then you can convert a number to different base by cbase # エイリアスを設定しているあたりにでも以下のコードをコピペすると基数変換がcbaseコマンドで簡単できるようになります function cbase() { function echo_usage() { cat << USAGE usage: cbase [-i num] [-o num] num -i num Set a number of base you want to convert FROM. Default is 10. -o num Set a number of base you want to convert TO. Default

    getoptsを関数(function)の中で使う - Qiita
  • シェルスクリプト(sh/bash/zsh)で変数から変数へ代入する方法について - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    シェルスクリプト(sh/bash/zsh)で変数から変数へ代入する方法について - Qiita
    AmaiSaeta
    AmaiSaeta 2021/10/07
    `$(~~)` の内容を `echo` したら改行が無くなる(空白になる)ので、 `$(~~~)` は改行を空白にするのかと思ってた……
  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
    AmaiSaeta
    AmaiSaeta 2021/02/19
    `-x` (or `-v`)は `set` じゃなくて開発中限定で `bash -x scriptfile` みたいに使うな。IFS書き換えは「お前ら確実に$@のクォート忘れるやん」て事かと思うが、それならスクリプト言語使った方がマシか……
  • ShellCheck – shell script analysis tool

    GPLv3: free as in freedom documented on the ShellCheck Wiki available on GitHub (as is this website) already packaged for your distro or package manager supported as an integrated linter in major editors available in CodeClimate, Codacy and CodeFactor to auto-check your GitHub repo written in Haskell, if you're into that sort of thing.

    AmaiSaeta
    AmaiSaeta 2019/07/24
    bash/shのlinterみたいな物かね。
  • プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita

    普通のプログラミング言語での開発に慣れた人ほどシェルスクリプト、特にBashで戸惑う部分の一つに、i = 0のように空白を開ければエラーになるし、かといってif[$i!=0]のように詰めてもやっぱりエラーになる、という点が挙げられます。書きたい物を思うように書けなくて「なんだよこのクソ言語は!!!」とブチギレる人は少なくないのではないでしょうか。この記事では、そのイライラを解消するポイントをお伝えしようと思います。 以下、特に断り無く「シェルスクリプト」と書いている場合はすべて「Bashのスクリプト」という意味になります。zsh等他のシェルではまた事情が異なりますので、ご注意ください。 (※以前プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話という記事を書いたのですが、この記事は、その増補リファイン版として執筆させて頂いたSoftwareDesign 2

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita
    AmaiSaeta
    AmaiSaeta 2018/07/25
    「想定外の使い方しといて文句言うな」という話ではある。 | 注釈3はちょっと前に悟った。
  • bashの組込みコマンド自作によるスクリプトの高速化 - Qiita

    はじめに bashには次の2つの理由によって、組み込みコマンド(builtin command)というものが存在します。 スクリプトの高速化のため。組み込みコマンドであれば通常のコマンドを実行する場合に比べてプロセスの生成コスト(fork()/exec())が削減できる bash自身の状態を変更させるため。例えばcdコマンドを/bin/cdとして用意してbashから当該コマンドを実行しても、当該コマンドのpwdが変更されるだけで、bashのそれは変更されないため、意味がない 今回は前者に焦点を合わせて、その効果と、組み込みコマンドの自作方法について述べます。 予備知識: 組込みコマンドによるスクリプト高速化の効果 組込みコマンドそのものの存在、及びその存在意義について既にご存知のかたは、この節を飛ばしてもらって構いません。 例えば皆さんがbashスクリプトからechoコマンドを実行した場合

    bashの組込みコマンド自作によるスクリプトの高速化 - Qiita
    AmaiSaeta
    AmaiSaeta 2017/01/29
    bashのコード弄るって話かと思ったら。組み込みコマンドを後付け出来るとは知らなかった。
  • コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita
    AmaiSaeta
    AmaiSaeta 2016/09/29
    規定されてるのはCで言う所のEXIT_SUCCESSとEXIT_FAILUREぐらいかと思ってた。
  • シェルスクリプトを書くときはset -euしておく - Qiita

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

    シェルスクリプトを書くときはset -euしておく - Qiita
  • 私が他人のシェルスクリプトから学んだこと | 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
  • Bashが急上昇 - 3月プログラミング言語人気

    先月に続いてRubyが順位を伸ばしており、PHPPythonについでスクリプト言語として第3位につけた。Perlはシェアを落としている。 3月でもっとも注目されるのは、Bashがこの数カ月でいっきにシェアを増やし12位につけたことにある。シェルスクリプトとしてはC shellも調査対象とされており、C Shellもこの数カ月で一気にシェアを増やしている。C shellのシェアはBashのシェアの半分ほど。 BashやAshなど、シェルスクリプトをプログラミング言語として採用する開発手法に注目が集まりつつあり、TIOBEの調査結果はこうした動向を反映したものではないかとみられる。

    AmaiSaeta
    AmaiSaeta 2013/03/13
    へぇ、こんな集計があるのか。JSが意外と低いのな。しかしどうやって集計してるんだろう。JavaとJSみたいに名前被る奴、C++みたいに記号を含む奴等々めんどくさそう。
  • $ log < tomohiro.me | Bash の if で AND 条件や OR 条件を使用する

  • 1