タグ

shellに関するHHRのブックマーク (123)

  • trapを使ったシェルスクリプトの終了処理のテンプレ(POSIX準拠) - Qiita

    # 終了処理($1: シグナル名) cleanup() { # 終了処理中に無視するシグナル(他に必要な場合は追加する) trap '' HUP INT QUIT PIPE TERM # ここに終了処理を書く : TODO # 自分自身にシグナルを再送信することでシェルスクリプトを終了する trap - EXIT "$1" [ "$1" = EXIT ] || kill -s "$1" $$ || exit 1 } # トラップするシグナル(他に必要な場合は追加する) for i in EXIT HUP INT QUIT PIPE TERM; do trap 'cleanup '"$i" "$i" done # ここより下に実際のシェルスクリプトの内容を書く : : 自分自身にシグナルを再送信しているところが特徴的だと思いますが、その理由についての解説がこの記事の内容で、POSIX 準拠で

    trapを使ったシェルスクリプトの終了処理のテンプレ(POSIX準拠) - Qiita
    HHR
    HHR 2024/12/26
  • シェルスクリプトでコマンドライン引数を組み立てる。POSIX準拠で!配列を使わず!安全に! - Qiita

    はじめに はい、bash で配列使えばいいじゃんという人には必要がない記事です。でも Debian や Ubuntu のシステムシェルの dash や Alpine Linux の BusyBox ash 等、配列が使えない環境・シェルがありますよね? コマンドライン引数の組み立てとは、例えばコマンド(例 find コマンド)を呼び出す時に、そのコマンドのオプションや引数を変数の値によって変えたい(動的に組み立てたい)という話です。 TL;DR 小難しいテクニックを使うわけでもなく、出来ることに気づくかどうかの話なので解説するよりもコードを出したほうが説明が早いでしょう。 #!/bin/sh set -eu include_symlinks="" # または 1 get_files() { set -- -name "$1" if [ "$include_symlinks" ]; then

    シェルスクリプトでコマンドライン引数を組み立てる。POSIX準拠で!配列を使わず!安全に! - Qiita
    HHR
    HHR 2024/12/02
    set $@ 位置パラメータ
  • 【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita

    プロファイルでできることは環境の設定だけです。シェルの設定は実際にはできないことはないのですが、やっても無意味なことになるのでできないとします。無意味なことになるというのは新しく起動したシェルにはプロファイルで行うシェルの設定は反映されないということです。環境の設定とは、特定のシェルに依存しない初期化処理のことで、その一つが環境変数の設定です。環境変数は OS の機能であってシェルの機能ではありません。環境の設定には、他に stty コマンドによる端末の設定や umask コマンドによる umask の設定などがありますが、プロファイルで設定することはあまりありません。 rc ファイルでは環境の設定とシェルの設定の両方ができます。シェルの設定、例えばプロンプト文字列の設定やシェルの機能を有効にしたり補完スクリプトの読み込みなどは rc ファイルに書きます。つまり、ほとんどのことは rc フ

    【完全版】歴史でシェルの設定ファイルを理解する - 全POSIXシェル対応 (.profie, .bash_profile, .bashrc, .zprofile, zshrc, etc.) - Qiita
    HHR
    HHR 2024/12/01
  • シェルスクリプトの配列・連想配列の書き方まとめ(全POSIXシェル対応、実装の違いと考察) - Qiita

    はじめに POSIX シェルでは配列や連想配列の機能は標準化されていませんが、多くのシェルで拡張機能として使うことができます。しかしながらシェルやバージョンによって実装されている機能は異なっており、適切な書き方か分かりづらいです。そこで記事では配列や連想配列の違いと使い方をまとめています。またどうしてそのような違いがあるのかを考察も行っています。(「考察」なので正しい情報ではなく私の考えです。調べればどこかに書いてあるかもしれませんが調べていません。) 先に一般的な結論を言っておくと、シェルスクリプトで配列や連想配列を使うのは避けたほうが良いです。dash などの純粋な POSIX シェルでは使えませんし、標準入出力でデータを渡せば配列が必要になることは少ないはずです。それでもシェルスクリプトで配列を使いたい場合は、この記事を参考に特定のシェルとバージョンを前提とした方が良いでしょう。複数

    シェルスクリプトの配列・連想配列の書き方まとめ(全POSIXシェル対応、実装の違いと考察) - Qiita
    HHR
    HHR 2024/11/30
    set -- 1 2 3 と $@ だけ使おうと心に決めた
  • 移植性・可搬性の高いシェルスクリプトを書くための技術まとめ - Qiita

    はじめに この記事は私がシェルスクリプト用のBDDテスティングフレームワーク ShellSpec の開発を通して得た移植性・可搬性の高いシェルスクリプトを書くための技術のまとめ、および関連する私の記事へのリンク集です。関連する新しい記事を書いたらここからリンクしますので、このページをストックするなりブックマークしておくと良いと思います。 この記事を変更通知目的でストックしている方へ 記事が多くなりリンク集のメンテナンスが大変になったため、この記事の定期的な更新はやめることにします。もし更新通知が必要な方は代わりに私をフォローしてください。ほとんどシェルスクリプト関係の記事しか書いていないためそれで十分目的を果たせると思います。 Q & A なぜシェルスクリプトで書くのか? シェルスクリプトには他のスクリプト言語にはない特徴が二つあります。一つ目はシェルスクリプトはコマンドを連携させるのに適

    移植性・可搬性の高いシェルスクリプトを書くための技術まとめ - Qiita
    HHR
    HHR 2024/11/30
    POSIX リンク集
  • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

    はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法を持つシェルは短いコードで正しく動作し、良い書き方は最短の時間と最小の手間で目的を達成することができます。コマンドのエラー処理を簡潔に書くことができるのが、シェル言語の優れている点の

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
    HHR
    HHR 2024/08/23
  • シェルスクリプト オプション解析 徹底解説 (getopt / getopts) - Qiita

    はじめに シェルスクリプトでオプション・引数解析といったらまず挙がるのが getopt と getopts です。さてどちらを使うべきでしょうか?始めに断っておくと実は私はどちらも積極的には使っていません。なぜなら独自実装でもほとんどコードは変わらず、より柔軟な処理ができるからです。とはいえ getopt と getopts はシェルスクリプトの基なのでこれらの使い方について解説したいと思います。(解説が不要な人はそれぞれの「使用方法」を読んでください。) 編の前に この記事を書いたあと独自実装のオプション解析コードを書き最終的に getopt や getopts よりも高機能で使いやすいオプションパーサー getoptions を開発しました。もはやちまちまとしたコードを手書きする作業は不要です。シェルスクリプトで簡単に引数解析したいだけという方にはこちらをおすすめします。POSIX

    シェルスクリプト オプション解析 徹底解説 (getopt / getopts) - Qiita
    HHR
    HHR 2024/02/19
    getoptsとgetoptは別という話
  • スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita

    はじめに この記事は私の主観かつ知っていることをまとめたものです。古くからのシェルの専門家とかではなくここ数年の間に必要になった時にその都度調べたものなので間違いとかもあると思います。またタイトルの通りスクリプト言語としての比較です。つまりインタラクティブシェルの機能についての比較はしていません。(そもそも使い込んでるわけじゃないので知らないです。)POSIX シェルに限定しているのも私が他のシェルを詳しく知らないからです。もし今も使われていて(もしくは開発中で)ここに書かれていない POSIX シェルがありましたらコメントで教えて下さい。(※ csh, tcsh, fish は POSIX シェルではありません。) シェルの系統は少し古いですが「What does it mean to be “sh compatible”?」に投稿されている図が詳しくてわかりやすいです。またこちら「~s

    スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita
    HHR
    HHR 2024/01/20
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

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

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    HHR
    HHR 2023/09/02
  • Why are these curly braces necessary in sed?

    HHR
    HHR 2023/04/06
    sed curly braces { の仕様
  • GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts
    HHR
    HHR 2022/11/07
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
    HHR
    HHR 2022/11/07
  • Difference between Access, Modification and Change Time in Linux?

    HHR
    HHR 2022/10/18
    statコマンドの出力のAccess,Modification,Changeの仕様
  • sortコマンドで複数キーによるソート

    sort コマンドの挙動がわかりにくかったのでメモです。 サンプルとして次のような3つのフィールドを持ったデータを使います。 sort_sample.tsv 5 aab 5 1 abb 5 10 aab 10 5 abb 1 1 baa 10 1 aba 5 10 bab 5 10 abb 10 1 bab 1 1 aab 5

    sortコマンドで複数キーによるソート
    HHR
    HHR 2022/10/18
    “-k 2,2 のように範囲を絞るのがポイントです。”
  • 高性能pingツール「fping」の使い方

    Tecmint.comは7月31日(米国時間)、「Fping - A High Performance Ping Tool for Linux」においてfpingコマンドの使い方を紹介した。fpingコマンドはpingコマンドと類似の用途で利用するコマンド。pingと異なり複数のホストや範囲を指定して動作させることができるという特徴がある。複数のホストに対して一斉にpingコマンドを実行したいといった用途で利用することができる。 fpingコマンドの主なインストール方法と紹介されている利用方法は次のとおり。

    高性能pingツール「fping」の使い方
    HHR
    HHR 2021/06/02
  • あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com

    あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
    HHR
    HHR 2021/05/23
    auxだけどスレッド見たい時はL使うの分かりみが深い
  • LS_COLORSを設定しよう - Qiita

    lsコマンドで出力されるファイルやディレクトリに色をつけたい場合、LS_COLORSという環境変数にカラー設定を記述することはよく知られていることと思います。 しかし、これをいちいち手動で設定したり追加したりするのは面倒です。 そこで今回はdircolorsというコマンドを用いて、カラー設定を読み込む方法を紹介します。 今回読み込むカラー設定はdircolors-solarizedです。 名前の通り、みんな大好きsolarizedのカラー設定です。 今でもちょくちょく更新されていて、色々な拡張子のファイルを良い感じに色付けしてくれます。 カラー設定の読み込み では題のカラー設定の読み込み方法についてです。 dircolors-solarizedはcloneなりDLなりして持ってきてもらうとして、その中にあるdircolors.ansi-universalというカラー設定を読み込んでみまし

    LS_COLORSを設定しよう - Qiita
    HHR
    HHR 2021/02/02
    LS_COLORS:GNU lsの環境変数。LSCOLORS:BSD版lsの環境変数
  • Linux — source コマンドは何をしているのか > 実は環境をリロードするためのものではない - Qiita

    ごく基的なことだが、今までよく考えずに使っていた。 source コマンドというと、「.bash_profile を変更した後に使うもの」ぐらいのイメージしかなかった。 謎 「なぜひと手間かけさせるのか」「プロフィールファイルを変更した時に、環境設定も自動更新してくれたら良いのに」と思っていた。 だが source コマンドは実は、環境をリロードするためのものではない。 ファイルに書かれた内容を 忠実にコマンドとして実行していくものなのだ。 $ source と $ bash の違い では $ bash でファイルを実行するのとは何が違うのか。 $ bash [file] はシェルスクリプト内の 「裏側=閉じられた環境」 でコマンドを実行する。 $ source [file] は 「表側=開いた環境」 で、コマンドを実行する。 動作が変わる例 たとえば「変数に代入するだけ」の単純なスクリ

    Linux — source コマンドは何をしているのか > 実は環境をリロードするためのものではない - Qiita
    HHR
    HHR 2020/12/22
    sourceコマンドによる現在のshellへの作用
  • 入門 シェル実装

    開発者にとってシェルが必要不可欠なものであることは論を俟ちませんが、当たり前の存在すぎてこれがどのように実現されているのかを知る機会はあまりないと思います。トークでは、シェルがどのように実現されているのかを、実際にシェルを実装する過程を通じてお話しします。 ※ もともとのトークのタイトルは「入門 シェル」でしたが,わかりやすさのため「入門 シェル実装」にタイトルを変更しています.Read less

    入門 シェル実装
    HHR
    HHR 2020/02/29
    良資料。新卒研修とかで見せたい内容
  • シェル芸初心者によるシェル芸入門

    2. $ whoami • @icchyr • 某濃厚な大学のB3 • Activity • CTF (tuat_mcc, TokyoWesterns) • ICPC (nocow) など

    シェル芸初心者によるシェル芸入門
    HHR
    HHR 2017/07/30
    良資料。よーまとまっとる。
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy