タグ

ブックマーク / qiita.com/ko1nksm (12)

  • 【完全版】歴史でシェルの設定ファイルを理解する - 全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
    mollifier
    mollifier 2024/11/05
  • 【脱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
    mollifier
    mollifier 2023/09/02
  • シェルスクリプトの正規表現の詳細解説(令和最新版)〜 基本正規表現(BRE)と拡張正規表現(ERE) - Qiita

    上記は正規表現を使う UNIX (POSIX) コマンドですが、シェルスクリプトで使うなら ERE だけを覚えれば十分だとわかると思います。例外は expr ぐらいですが、あまり使わないと思います。人によっては対話型シェルから less や vim を使っていると思いますが、これらも全て ERE をサポートしています。ちなみに egrep は POSIX 準拠ではなくなったコマンドです。 sed -E (ERE) は POSIX Issue 8 で標準化される(予定) もともと sed コマンドは BRE にしか対応しておらず、sed -E または sed -r は BSD または GNU の拡張機能なので厳密に POSIX に準拠したい場合は使用してはならないと言われていたこともありました。しかしそれはもう昔の話です。sed -E は POSIX で標準化されます。もはや最新のよく使われ

    シェルスクリプトの正規表現の詳細解説(令和最新版)〜 基本正規表現(BRE)と拡張正規表現(ERE) - Qiita
  • シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね - Qiita

    特に詳しく説明することもないですが [ ] (test) で使える演算子の -a (AND) と -o (OR) は POSIX では非推奨(廃止とマーク)となっているので移植性を重視する場合は使わないようにしましょう。[ 条件1 -a 条件2 ] の代わりに [ 条件1 ] && [ 条件2 ]、[ 条件1 -o 条件2 ] の代わりに [ 条件1 ] || [ 条件2 ] と書けば十分です。 -a と -o が不要ということは ( ) があってもしょうがないのでこちらも廃止されます。複雑な条件式は避けた方が良いと思いますが、優先順位を指定したいのであれば [ 条件1 ] && { [ 条件2 ] || [ 条件3 ]; } のように { } を使用します。( ) を使って [ 条件1 ] && ( [ 条件2 ] || [ 条件3 ] ) と書いても動きますがサブシェルが生成され遅くな

    シェルスクリプトの [ -a (AND) と -o (OR) ] は非推奨だかんね - Qiita
    mollifier
    mollifier 2023/06/23
  • シェルスクリプトの長所と短所のまとめ - Qiita

    はじめに シェルスクリプトに関しての長所と短所をまとめてみました。多くの短所を上げていますが、私はシェルスクリプトを嫌っているわけではなく(むしろ逆)、現在のシェルスクリプトが抱える問題点を明らかにし、シェルスクリプトはどう使うべきか? またはどう使うべきではないか? 問題点があるならばそれを解決することはできないか? を考えるためにまとめています。問題を解決するにはまず問題点を明らかにしなければいけません。 またシェルスクリプトを来の用途に合わないものに使うと逆に開発が難しくなってしまいます。それは使い方が悪いわけでシェルスクリプトの問題ではありません。間違った使い方によってシェルスクリプトの価値が不当に下げられてしまうことを減らすために、あえて多くの短所をあげています。つまり最初からこんな用途に使おうと思うな。ということです。(使うことを禁止はしませんが、わかった上でやりましょう。実

    シェルスクリプトの長所と短所のまとめ - Qiita
    mollifier
    mollifier 2023/06/23
  • sedで拡張正規表現 (ERE) を使う時は -r ではなく -E オプション(POSIX Issue 8 準拠)を使いましょう - Qiita

    TL;DR POSIX Issue 8 で 拡張正規表現 (ERE) を使うための -E オプションが標準化されます。 もう sed で 基正規表現 (BRE) を使う必要はありません。 POSIX Issue 8 は 2022 年後期予定ですが今使えるのであれば待つ必要はありません。 -r オプションは -E と同じ意味の古いオプションです。 s/foo/bar/i ← この i (ignore case) も POSIX Issue 8 で標準化されます。 grep でも -E オプションで ERE が使えます。 昔は POSIX で標準化されていた(?)egrep も POSIX.1-2001 で廃止されています。 grep -E で ERE、sed -E で ERE、awk は最初から ERE です。 標準化に至った経緯 -E オプション 0000528: Support ext

    sedで拡張正規表現 (ERE) を使う時は -r ではなく -E オプション(POSIX Issue 8 準拠)を使いましょう - Qiita
    mollifier
    mollifier 2023/06/21
  • 初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? なんだろう、嘘つくのやめてもらっていいですか? 大学も技術者認定機関も、いつまで古いまたは間違ったシェルとカーネルの概念を説明し続けるのでしょうか? シェルはカーネルの言葉をユーザーの言葉に翻訳したり、出力結果をユーザーに中継したり、カーネルを防御したりする層ではありません。指定したコマンドを実行するだけのプログラムです。勉強中の学生か代理執筆業者が適当な文献を調べて書いたとしか思えません。そして他人の説明を自分の言葉に置き換えるのが上手い人がおかしな説明をさらに広めています。個人サイトやオンライン学習サイト程度であれば適当なことを書い

    初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita
  • 名著「UNIXという考え方 - UNIX哲学」は本当に名著なのか? 〜 著者のガンカーズは何者なのかとことん調べてみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに え?みんなこんなを UNIX 哲学のオススメって紹介してるの? あえて煽りから入らせていただきます。UNIX 哲学を語るとしてマイク・ガンカーズ (Mike Gancarz) の「UNIXという考え方 - The UNIX Philosophy その設計思想と哲学」はおそらく日で一番有名な UNIX 哲学の解説です。名著と言われている通り素晴らしいこともたくさん書かれています。しかし前提知識を持たない人が、このを読んで正しく UNIX 哲学を理解するのはかなり難しいです。 注意 この記事の趣旨を勘違いされませんよう

    名著「UNIXという考え方 - UNIX哲学」は本当に名著なのか? 〜 著者のガンカーズは何者なのかとことん調べてみた - Qiita
  • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

    なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜ShellScriptBashshellPOSIX まえがき この記事は「シェルスクリプトで高い移植性と生産性を両立させるシリーズ」の第一弾です。移植性と生産性を両立させるための前提知識として POSIX コマンドの問題点について解説します。第二弾では高い移植性と互換性を実現させるための考え方、そして第三弾、第四弾ではそれを実現するシェルスクリプトの具体的な実装テクニックを紹介します。第五弾では現実的な問題と回避方法について解説する予定ですがまだ具体的な内容は決まっていません。第五弾はその前に「シェルスクリプト入門(仮)」の記事を書こうと思ってるので少し遅くなると思います。もし興味がある方は記事をストックしていると更新時に通知されると思います。 2021-07-11 追記 記事が長くなった

    なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
    mollifier
    mollifier 2021/06/28
  • シェルスクリプトのechoで”問題なく”色をつける(bash他対応) - Qiita

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

    シェルスクリプトのechoで”問題なく”色をつける(bash他対応) - Qiita
    mollifier
    mollifier 2020/08/31
    bashならbash向け、dashならdash向け、動かすシェル に合わせてコードを変えればよいのではと思う
  • スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita

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

    スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita
    mollifier
    mollifier 2020/05/27
  • ShellSpec - シェルスクリプト用のBDDテスティングフレームワークを作りました - Qiita

    次のような特徴があります POSIX 準拠のシェルで動作します。 (dash, bash, ksh, busybox 等) BDD スタイルの スペックファイル シェルスクリプトと互換性があるスペックファイルのシンタックス シェルスクリプトによる実装 依存関係が少ない(僅かな POSIX コマンドしか使用しません) レキシカルスコープ風のスコープをもったネスト可能なテストグループ Before / After フック Skip / Pending モック / スタブ (一時的な関数の置き換え) ビルトインのシンプルなタスクランナー モダンなレポーティング (色や失敗したテストの行番号表示) 拡張可能なアーキテクチャ (カスタムマッチャー、カスタムフォーマッター等) ShellSpec は ShellSpec でテストしています ShellSpec の使い方は README.md に任せると

    ShellSpec - シェルスクリプト用のBDDテスティングフレームワークを作りました - Qiita
    mollifier
    mollifier 2019/04/05
  • 1