並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 215件

新着順 人気順

POSIXの検索結果1 - 40 件 / 215件

  • POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita

    POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方

      POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
    • なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する

      なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決するShellScriptUNIXSQLitePOSIXQiitadelika 「利用者は数十億人!? SQLiteはどこが凄いデータベース管理システムなのか調べてみた」の続きです。 はじめに 複雑な構造のデータを扱うのであればシェルスクリプトや Unix (POSIX) コマンドでデータ管理を行うのは避けるべきだと思います。解決不可能な問題が多いからです。しかしそれでも何かしらの理由でやろうと考える(やらなければいけない)のであれば SQLite を使うのをおすすめします。シェルスクリプトや Unix コマンドは行単位の単純なテキストデータをシーケンシャルにデータ処理するのが前提となっており、改行や空白が含まれるデータや複雑な構造のデータ扱うのは苦手です。またシェル

        なぜシェルスクリプトで高度なデータ管理にSQLiteを使うべきなのか? ~ UNIX/POSIXコマンドの欠点をSQLで解決する
      • 恐怖!シェルショッカーの POSIX原理主義シェルスクリプト

        シェルスクリプトがいかに最強の言語であるかを、POSIX原理主義集団「シェルショッカー日本支部」がとくと教えてやる。 ― 2016/03/20@歌舞伎座.tech#9

          恐怖!シェルショッカーの POSIX原理主義シェルスクリプト
        • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

          はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash、ksh 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整数の計算を行うことができます。「今どき」って一体いつからだって話なわけですが……。 注意 シェルスクリプトでパフォーマンスの話をするとすぐに「他の言語で〜」という方がいますが、私はどんなことにでもシェルスクリプトを使えなんて一言も言っていません。パフォーマンスを気にしている理由は、そこが実際にシェルスクリプトのボトルネックになるポイントだからです。そもそもシェルスクリプトと一般的な言語は言語設計レベルで得意なことが違います。ユ

            今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
          • POSIX準拠シェルスクリプトでマルチコアの能力を活用する並列処理の実装(最大並列数あり、GNU Parallel, xargsなし) - Qiita

            実は最大並列数の制限がなければジョブ(標準入力からの一行単位のデータ)の数だけバックグラウンドプロセスを起動すればいいのでかなり簡単に実装できます。ですが普通は嫌ですよね?ということで最大並列数を制限する処理を入れています。また通常の利用で必要になりそうな CTRL-C と TERM シグナルへの対応もしています。 #!/bin/sh set -eu [ "${ZSH_VERSION:-}" ] && setopt shwordsplit MAX_PROC=4 # 最大並列数 # INT(CTRL-C)、TERM による終了処理 terminate() { trap '' TERM kill -TERM 0 exit "$1" } trap "terminate 130" INT trap "terminate 143" TERM # trap : CONT # 並列で実行される処理 fu

              POSIX準拠シェルスクリプトでマルチコアの能力を活用する並列処理の実装(最大並列数あり、GNU Parallel, xargsなし) - Qiita
            • test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

              test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、15日目の記事です。 書くのが遅れ、ネタは尽きかけ、 マニアックさやニッチさが足りなくなってきているような気がします。 ふつうの内容ですみません。 今日は test, [, [[ コマンドの違いについてざっくり紹介します。 [[ がある bash, ksh, zsh ならば test と [ の使用は避け、 [[ を使用すべきです。 [ は慎重に使わないと様々な罠にかかるため危険です。 (翌日のネタも併わせてどうぞ) test と [ の違い どちらもシェルの組込みコマンドです。名前が違うのと [ は最後の引数を ] にしなければいけない縛りがある以外、 動作まった

              • POSIXコマンドは「どの環境にもあるコマンド」ではないよという話 - Qiita

                はじめに POSIX コマンドはどの環境にもある(追加インストールの必要がない)コマンドだと思われがちですがこれは間違いです。POSIX コマンドにどの環境にもあるという性質は有りません。POSIX コマンドの中でどの環境にもあるコマンドは実際には半分程度しかありません。 関連記事 POSIX準拠 とは本当はどういうことなのか?「POSIXで規定されたものだけを使う」ではありません 補足 Linux は POSIX に準拠してないからだという意見もあるかとは思いますが、現実に使われている環境を無視して「どの環境にもある」と主張しても意味はありません。 本当にどの環境にもあるコマンドとは? 全 POSIX コマンドは 160 個 POSIX コマンドは全部で 160 個あります。そのうち 22 個はシェルにビルトインされているコマンドなのでどの環境にもあると言えます。残りは 138 個のコマ

                  POSIXコマンドは「どの環境にもあるコマンド」ではないよという話 - Qiita
                • WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表

                  WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表 WebAssemblyランタイム「Wamer」の開発元であるWasmer社は、WebAssemblyでファイルやネットワーク、メモリなどのシステムリソースを抽象化する業界標準のAPI仕様である「WASI」(WebAssembly System Interface)を拡張してPOSIX対応にする新技術「WASIX」を発表しました。 WASIとPOSIX WebAssemblyはもともと、Webブラウザ上でネイティブコード並の実行速度でアプリケーションを実行することを目的に策定されたバイナリフォーマットです。 そのWebAssemblyを、LinuxやWindows、macOSなどのOS上でWebAssemblyランタイムを用いて直接実行する

                    WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表
                  • コマンド実行でシェルが怖いなら使わなければいいじゃない - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                    http://blog.ohgaki.net/os-command-escape-shell-spec-command-implementation 「えすけーぷじゅうよう!!」を強調して言いたいからなのかシェルの理解が足りないからなのか、 意図がよくわからない文言やら説明が散見されますが、きりがないのでそれらはスルーします。 (シェルについては、なんで関係ない tcsh の話が出てくるんだとか、 位置パラメーター展開に $* 使うなとか、色々) 特に気になったのが以下の文章です。(強調は私によるもの) OSコマンドはOSが提供するシェルで実行されます。 シェルはテキストインターフェースを持ち、 テキストでコマンドとオプションを受け取り実行します。 例示した脆弱なPHPプログラムの場合、 ユーザーからの入力に対しセキュリティ処理を一切してないため、 簡単にサーバーを乗っ取られる可能性があり

                    • なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita

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

                        なぜシェルスクリプトはPOSIX準拠でも環境依存が激しいのか? 〜POSIXの問題点とその解決策の案〜 - Qiita
                      • 【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita

                        はじめに set -o pipefail は POSIX で標準化されているシェルオプションです。パイプラインにおけるエラーを確実に検出するために、シェルスクリプトでは基本的に使うようにしましょう。 某コメントより “set -o pipefail は標準化されました” っていってここ何年かの標準化を無邪気に正当化できるのいいなと思う(目の前のターミナルを見ながら) どのシェルを今使っているのか聞きたいですね。商用 Unix を含む主流の環境で、すでに何年(十数年、数十年)も前から set -o pipefail は実装済みなんですが? おそらくシェルの事をよく知らないで言ってるのでしょう。私は標準化の有無は関係なく実際のシェルのことを調べ尽くして言ってるわけで無邪気に正当化とか失礼な話です。標準化とか気にしてるから何年(十数年、数十年)も前に実装された便利な機能が使えないんですよ。自業自

                          【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita
                        • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

                          FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

                            祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
                          • WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に

                            WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に Wasmer 4.0ではWasmerが独自仕様として提唱する、WebAssemblyからOSなどのシステムにアクセスするAPIを抽象化するWASI(WebAssembly System Interface)仕様をPOSIX対応に拡張した「WASIX」が安定版となり、これを利用してWebAssemblyで実装したBashのコマンドプロンプトなどが実現しています。 参考:WebAssemblyをPOSIX対応に拡張した「WASIX」登場、bashやcurl、WebサーバなどLinuxアプリが実装可能に。Wasmerが発表 下記はWasmerによりBashのコマンドラインをWebAssemblyで実装し、それを実行したBash環境上でPythonのWasme

                              WebAssemblyでBashのコマンドプロンプトを実装、Wasmer 4.0が正式リリース、POSIX対応の「WASIX」など安定版に
                            • コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘

                              by Rudolf Schuba UNIX系のOSに共通する機能の呼び出し方法などを定めたPOSIXは、「POSIXに準拠するならばどんな環境でも動作する」ことを保証する規格です。POSIXは長年移植可能なアプリケーションの開発を支えてきましたが、システム管理者のチャールズ・フィッシャー氏は「POSIXがマルチコアCPUの能力を制限する要因となっている」と指摘し、「xargs」コマンドを例として具体的な説明を行っています。 Parallel shells with xargs: Utilize all your cpu cores on UNIX and Windows | Linux Journal https://www.linuxjournal.com/content/parallel-shells-xargs-utilize-all-your-cpu-cores-unix-and-

                                コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘
                              • マルチスレッドプログラミング (POSIX、Win32)

                                このページではマルチスレッド、プロセス間通信、スレッド間通信およびタイマープログラミングについて紹介します。(いやー。好きだなこういう話題は。) 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。また、サンプルの文字コードはS-JISで提供しますので、ご使用の際はWindowsからFTPするなどして適切な文字コードに変換してください。尚、サンプル中には説明の簡略化のため意味のないコードや、実用上問題のあるコードも含まれていますのでご注意ください。 [POSIX]pthread_create [POSIX]スレッドの同期(ミューテックス) [POSIX]タイマー [WIN32]_beginthreadex [WIN32]スレッドの同期(ミューテックス) [WIN32]共有メモリ [WIN32]スレッドの同期(イベント) [PO

                                • GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

                                  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 - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
                                  • POSIX - Wikipedia

                                    POSIX(ポジックス[1][2][3][注釈 1]、英: Portable Operating System Interface)は、オペレーティングシステム (OS) の標準的なインタフェースおよび環境を定義するIEEE規格である[5]。ソースコードレベルでの移植性の高いアプリケーションソフトウェアの開発を容易にすることを目的として、主にUNIX系のOSに関して、各OSが共通して持つべきコマンドラインインタプリタ(シェル)、共通のユーティリティプログラム、およびアプリケーションプログラミングインタフェース (API) について定めている。アプリケーション開発者とシステム実装者の両方から利用されることを意図している。 概要[編集] 規格の内容[編集] POSIXによって定められていることは、カーネルへのC言語のインタフェースであるシステムコール、プロセス環境、ファイルとディレクトリ、パス

                                    • 安全な一時ファイルの作成と削除の方法 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                                      拡張 POSIX シェルスクリプト Advent Calendar 2013、6日目の記事です。 本日のお題は「一時ファイルの作成と削除」ですが、 よくあるシェルスクリプトのダメ出しネタになってしまいました。 安全な一時ファイルの作成方法 たとえば、こんな感じのありがち(?)なスクリプトがあったとします。 意味のない処理内容ですが、雰囲気だけ察してください。 #!/bin/bash tmpfile=/tmp/words.tmp rm -f $tmpfile echo 'しにたい' >>$tmpfile echo 'とりあえずねよう' >>$tmpfile sleep 3 echo -n '今どんな気持ち? ' read feeling echo $feeling >>$tmpfile cat $tmpfile rm $tmpfile 全然駄目ですね。 もし「何にも問題ないじゃないか!」とい

                                      • スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita

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

                                          スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita
                                        • echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita

                                          echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! はじめに 実は bash に組み込まれた echo コマンドは POSIX に準拠していません。しかし 2023 年に予定されている次期 POSIX (Issue 8) の改定で、POSIX 準拠の動作になります。🎉🎉🎉 私のこの言い方には違和感を感じるかもしれません。「POSIX に違反している bash が問題点を修正して、POSIX に準拠させるのではないのか?」と。いいえ違います。POSIX 側が仕様を修正することで、bash は何も変更せずに過去のバージョンも含めて POSIX に準拠するようになります。面白いですね。 この記事は echo コマンドの移植性の問題の歴史を振り返りながら、それを例に POSIX 標準化団体がどのような方針で標準規格を

                                            echoコマンドの移植性が低い歴史的理由とPOSIXの改定方針 ~ 次期POSIXでbashのechoはPOSIX準拠になる! - Qiita
                                          • 米国政府「POSIX準拠がシステムの導入要件」が撤回されたのは2000年だという話 - Qiita

                                            Windows は 1999年12月(ほぼ2000年なので上記では2000年としています)に発売された Windows 2000 まで POSIX サブシステムを搭載していました。2001年8月に発売した Windows XP では POSIX サブシステムを搭載するのをやめましたが、そのときにはもう米国政府の導入要件ではなくなっていました。POSIX が米国政府の導入要件ではないため POSIX サブシステムをやめたのかもしれません。だからといって Windows が POSIX システムとの互換性を諦めたわけではなく、Microsoft Windows Services for UNIX (SFU) という形で POSIX システムというより UNIX との互換性を実現していました。POSIX だけでは足りないからです。後に SFU は Subsystem for UNIX-based

                                              米国政府「POSIX準拠がシステムの導入要件」が撤回されたのは2000年だという話 - Qiita
                                            • Linux用Windowsサブシステム(WSL)の登場とPOSIXサポートの変化をおさらい

                                              Linux用Windowsサブシステム(WSL)の登場とPOSIXサポートの変化をおさらい:その知識、ホントに正しい? Windowsにまつわる都市伝説(220) Windowsはかつて「POSIXサブシステム」を備え、UNIX互換のファイルシステムと実行環境を提供していました。POSIXサブシステムは現在のWindowsにはもうありませんが、「Linux用Windowsサブシステム(WSL)」の登場で、POSIXサポートが復活というか、さらに強化されています。その1つが、「POSIX方式(スタイル)の削除」のサポートです。 Windowsにまつわる都市伝説 WindowsとPOSIXの関係 「POSIX(Portable Operating System Interface)」は、オペレーティングシステム(OS)の標準的なインタフェースと環境を定義するIEEE規格です。ソースコードレベル

                                                Linux用Windowsサブシステム(WSL)の登場とPOSIXサポートの変化をおさらい
                                              • POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita

                                                重要 2022-01-30 追記 この記事で解説していた警告の出力は 2022-01-21 に取り消されました(参照 Revert deprecation of which)。そのため Debian which が GNU which に変わることは(少なくとも近い未来では)ないと思います。しかしながら which を使うよりは POSIX で規定されている command と type を使う方を推奨します。 はじめに which コマンドはシステムにインストールされてるとは限りません。実際に最小構成でインストールされてない環境として CentOS があります。一方 command -v は POSIX 規定されているので POSIX に準拠したどのシェルでも問題なく使えます。シェル上では which コマンドを使っても良いと思いますが、シェルスクリプトでは command -v を使う

                                                  POSIXシェルスクリプトではwhichではなくcommand -vを使うべき理由(+シェルスクリプト版which) - Qiita
                                                • 1993年から Windows は POSIX 準拠だという話 - Qiita

                                                  はじめに Windows NT は最初のバージョンから POSIX 準拠です。当時の POSIX で標準化されていた POSIX API を実装しており NIST が POSIX 準拠であると認めています。その資料も公開されています。 NIST(National Institute of Standards and Technology)とは、アメリカ合衆国の連邦政府機関の一つで、科学技術に関連する標準についての研究などを行う機関。主に度量衡や計測・計量についての標準を管理したり、関連する科学研究や技術開発を推進している。1988年に前身のNBS(National Bureau of Standards:国立標準局)から改組された。 いつの間にやら某所の Windows に関する POSIX の説明があまりにも酷いデタラメな内容に書き換えられていたので、ここに「1993年から Window

                                                    1993年から Windows は POSIX 準拠だという話 - Qiita
                                                  • シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応 - Qiita

                                                    シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応ShellScriptBash国際化GettextPOSIX はじめに POSIX 準拠でどの環境でも動くシェルスクリプト用の国際化ライブラリ sh-i18n を作りました。同様のライブラリとしては GNU gettext に含まれている gettext.sh が有名です。すでにライブラリがあるのになぜ作ったのかと言えば、gettext.sh は基本的に GNU gettext 専用で、書きづらく単一の書き方でどのシェルどの環境でも動くわけではなかったからです。一言で言えばすべての環境で動く完璧なシェルスクリプト用の国際化ライブラリを作りたかったのです。 ちなみにすべての環境で動くというのはおそらく嘘です。動かない環境は今のところ認知していません

                                                      シェルスクリプト用の国際化ライブラリの決定版! sh-i18n を作りました ~ gettext.sh 代替・すべてのPOSIXシェルと環境に対応 - Qiita
                                                    • WebAssemblyでPOSIXの機能を利用可能にする仕様「WASIX」が公開

                                                      米Wasmerは、WebAssemblyでPOSIX(Portable Operating System Interface)の機能を利用可能にする新しい仕様「WASIX」を5月30日に公開した。WASIは、WebAssemblyをWindows、macOS、Linuxで動作可能にするための仕様であるWASIを拡張したものだ。WASIでは、OSのファイルシステムやネットワークなどを安全に利用可能にするAPIを定義している。 WASIXは、マルチスレッド処理やバークレーソケット、プロセスのフォーク、DNSによる名前解決など、POSIXが定義する機能の多くをWebAssemblyで利用可能にする。現在のところWASIXはRustとC言語で利用でき、ZigやAssemblyScriptへの対応も予定している。 WASIXを利用したプログラムを作成するには、上記の対応言語でWASIXのAPIを使っ

                                                        WebAssemblyでPOSIXの機能を利用可能にする仕様「WASIX」が公開
                                                      • シェルスクリプトの後ろにバイナリを埋め込む手法はPOSIXで考慮されているという話 - Qiita

                                                        思いっきり雑学レベルの話ですみませんが、思い出した今書かないと忘れそうだなと思ったのでw この手法で何が出来るかと言うと、シェルスクリプトを実行するとスクリプトファイルの後ろ(exit で終了されて実行されない領域)に結合されたバイナリ形式の圧縮ファイル部分を抜き出して /tmp 以下に展開してそこに含まれているバイナリ形式の実行ファイルを実行して、一見シェルスクリプトのように見えるのに実はバイナリファイルを実行してるじゃんなどという楽しいことができます。いかにもハックまがいの手法に見えますが、どうやらこの手法は POSIX で考慮されているようです。 これを知ったのは「シバン shebang がないシェルスクリプトはどのシェルで動くかわからない(からちゃんと書いとけ)」の記事を書いている時に見つけた fish の PR 7802 です。fish はシバンがないスクリプトを実行するとエラー

                                                          シェルスクリプトの後ろにバイナリを埋め込む手法はPOSIXで考慮されているという話 - Qiita
                                                        • POSIX原理主義に基づく究極のスクレイピング - Qiita

                                                          この投稿はクローラー/スクレイピング Advent Calendar 2014の12月25日用です。 199X年。核戦争によって荒廃した時代に、ジャギという男がいた。 「おいお前、普段使っているシェルの名前を言ってみろぉ」 弟ケンシロウに成りすまし、そう言っては、“Bourne Shell”と答えない平民達を虐殺するという悪行を繰り返していた。弟の名に頼り、銃に頼り、人質に頼り、含み針に頼り、そしてガソリンという切り札に頼ったその男は、己の肉体のみで闘う弟によって、無様な最期を遂げた。 さて題名にもあるとおり、この記事は「POSIX原理主義」、つまりUNIX系OS最小インストール時に使えるコマンドだけでスクレイピングします。立派な言語やライブラリーがあったらスゴいスクレイピングができて当たり前。それだと道具がスゴいだけで、「自分はノーアイデアです」と言っているようなものです。 しかしながら

                                                            POSIX原理主義に基づく究極のスクレイピング - Qiita
                                                          • GitHub - kahing/goofys: a high-performance, POSIX-ish Amazon S3 file system written in Go

                                                            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 - kahing/goofys: a high-performance, POSIX-ish Amazon S3 file system written in Go
                                                            • POSIX Threads Programming

                                                              Author: Blaise Barney, Lawrence Livermore National Laboratory, UCRL-MI-133316 Table of Contents Abstract Pthreads Overview What is a Thread? What are Pthreads? Why Pthreads? Designing Threaded Programs The Pthreads API Compiling Threaded Programs Thread Management Creating and Terminating Threads Passing Arguments to Threads Joining and Detaching Threads Stack Management Miscellaneous Routines Exe

                                                              • POSIX sh準拠のシェルスクリプトを書くときに checkbashisms が便利。 | おそらくはそれさえも平凡な日々

                                                                http://sourceforge.net/projects/checkbaskisms/ 「#!/bin/sh なのにbashでしか動かないシェルスクリプトを書くな!」みたいなことはよく言われるわけですが、僕はゆとりなので正直どうでもええやろとか思ったりもしてました。実際、CentOSだと、/bin/sh は /bin/bash へのリンクだし、OSXでも /bin/sh の実態はbashだしね。 しかしそこで立ちふさがるのがUbuntu。Ubuntuだとデフォルトで /bin/sh は /bin/dash だったりするわけです。dashはPOSIX準拠のsh実装で、bash独自の記述があると見事に動かない。 とはいえ、それで困るのだったら、デフォルトシェルをbashにしたVMテンプレートを作ればいいんじゃないかって思うやろ。僕もそう思う。 しかしそこで立ちふさがるのがTravisで、

                                                                  POSIX sh準拠のシェルスクリプトを書くときに checkbashisms が便利。 | おそらくはそれさえも平凡な日々
                                                                • Fadis on Twitter: "シンボリックリンクのせいでPOSIXのファイルシステムAPIが台無しになってしまったという話。シンボリックリンクを辿る操作はカーネルで透過的に行われる為ユーザ空間のソフトウェアは通常パスにシンボリックリンクが含まれているかどうかを… https://t.co/xse83V40KJ"

                                                                  シンボリックリンクのせいでPOSIXのファイルシステムAPIが台無しになってしまったという話。シンボリックリンクを辿る操作はカーネルで透過的に行われる為ユーザ空間のソフトウェアは通常パスにシンボリックリンクが含まれているかどうかを… https://t.co/xse83V40KJ

                                                                    Fadis on Twitter: "シンボリックリンクのせいでPOSIXのファイルシステムAPIが台無しになってしまったという話。シンボリックリンクを辿る操作はカーネルで透過的に行われる為ユーザ空間のソフトウェアは通常パスにシンボリックリンクが含まれているかどうかを… https://t.co/xse83V40KJ"
                                                                  • 組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編

                                                                    秘密結社Metasepi作戦会議 第3回 @京都 のスライド http://partake.in/events/33be2dc4-19e6-47bf-b6ac-f94f9d70be67 https://www.ospn.jp/osc2013-kyoto/modules/eguide/event.php?eid=72Read less

                                                                      組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
                                                                    • 拡張 POSIX シェルスクリプト Advent Calendar 2013 - Adventar

                                                                      POSIX sh 以上の機能を備えた bash, ksh, zsh によるシェルスクリプトの話題。 なるべく外部コマンドに依存しないピュアシェルスクリプトを目指します。 sed, awk などのスクリプトが 80% 以上含むものはシェルスクリプトと認めません(老害)。…いや、嘘です、使います。 一人でやる予定だが未定。ネタください。

                                                                        拡張 POSIX シェルスクリプト Advent Calendar 2013 - Adventar
                                                                      • Linux: ifconfig, netstat を iproute2 (ip, ss) コマンドラインに変換 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                                                                        Linux: ifconfig, netstat を iproute2 (ip, ss) コマンドラインに変換 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、23日目の記事です。 ネタの在庫はともかく、書く気力がありません。 いくつかの記事がそれなりにうけたこともあり、頭が満足してしまったようです。 https://twitter.com/satoh_fumiyasu/status/415045480477765633 燃え尽きたぜ...真っ白に、 真っ白な灰に... (Advent Calendar 書けない 仕方ないので、過去に作成した bash スクリプト作品を紹介する内容で誤魔化します。 すみません。Linux 向けの話です。 Linux のネッ

                                                                        • bash, ksh, zsh の速度比較 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                                                                          bash, ksh, zsh の速度比較 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 拡張 POSIX シェルスクリプト Advent Calendar 2013、 1日目の記事です。 「このくらいの要件ならシェルで書ける!」と意気込んで実装を開始して、 たとえやりきっても「あー、やっぱり (あなたの好きな LL) で書けばよかった」 なんてことありませんか? 私はあまりありません。 POSIX シェルやそれ以前の非力なシェルはともかく、bash や ksh、zsh のような拡張 POSIX シェルであれば、少し無理をすれば、大抵の処理は書けます。 老害ですね、わかります。 しかし実装は問題ないのですが、速度がいまひとつなのはどうしても否めません。 そこで一つ、少しでも実行速度を改善する簡単な方法を伝授しましょう。 それは「ba

                                                                          • GitHub - biox/pa: a simple password manager. encryption via age, written in portable posix shell

                                                                            A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

                                                                              GitHub - biox/pa: a simple password manager. encryption via age, written in portable posix shell
                                                                            • ポータブルなシェルスクリプトを書く - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                                                                              拡張 POSIX シェルスクリプト Advent Calendar 2013、19日目の記事です。 うおー、あと 30分で書かないといけねー! 雑な内容ですみません。 今日はポータブルなシェルスクリプトの書き方ついてざっくり語ります。 UNIX 系 OS であれば大抵の OS / バージョンでも動くシェルスクリプト!! (ただし外部コマンドの非互換性の問題は除く) #!/bin/sh で書く POSIX sh でスクリプトを書けば完璧! shebang は #!/bin/sh!! …全然完璧ではありません。Solaris 10 のように /bin/sh が POSIX sh でない残念な OS がまだ生き残っています。 マニュアルにも載っているバグが仕様になったのではないかと思われる謎挙動や未知のバグを回避するのが大変です。 ポータブルにするには #!/bin/sh はまだ推奨できません。

                                                                              • POSIX原理主義 ― どこでも動く、20年動く、コピー一発デプロイ完了、な理想郷はシェルスクリプトで築かれる - YAPC::Asia Tokyo 2014

                                                                                POSIX原理主義 ― どこでも動く、20年動く、コピー一発デプロイ完了、な理想郷はシェルスクリプトで築かれる ■デプロイやその後の保守に苦しむプログラマー・運用管理者へ プログラム書いたけど、デプロイ(インストール)で躓いて半日ムダにしたとか、依存している言語やライブラリーのバージョンアップをしたら動かなくなって2,3日死にそうになった、などの痛い目に散々遭ってきた人々を救済する理想郷、 その名は「POSIX原理主義」。 この主義に改宗すれば、誰しも、 どのUNIXマシンに持っていっても動く(空間からの解放) 10年、20年の長期に渡り、メンテナンスフリーで動く(時代からの解放) デプロイは、コピー一発、えっ終わり!? という、今ドキの業界からするととても信じられない恩恵を享受できる。特に最初の2つを指して「時空を超えた可搬性」と呼ぶ。 ■POSIX原理主義とは何か? > POSIX(I

                                                                                  POSIX原理主義 ― どこでも動く、20年動く、コピー一発デプロイ完了、な理想郷はシェルスクリプトで築かれる - YAPC::Asia Tokyo 2014
                                                                                • >突然の死<ジェネレーター - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog

                                                                                  拡張 POSIX シェルスクリプト Advent Calendar 2013、25日目の記事です。 最終日です。ネタが尽きました。 本当にネタがないので、 最後は私の集大成…でもないですがそこそこ頑張って作ったシェルスクリプト、 「>突然の死<ジェネレーター」を紹介して締めたいと思います。 Twitter で私をフォローされている方はもうご存知ですね。 既に 2013年5月ごろにツイートした作品です。新ネタでなくすみません。 >突然の死<ジェネレーターとは? あなたの端末に>突然の死<を提供するイカしたスクリプトです。 名前は echo-sd と言います。 「echo」は echo コマンドのそれです。「sd」は「sudden death」です。 そのまんまですね。 …何のことやらさっぱりですか? そうですね。実際にお見せしましょう。 どうです? 便利でしょう? ツイート機能も付いてますよ

                                                                                    >突然の死<ジェネレーター - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog