タグ

UNIXに関するmasa8aurumのブックマーク (6)

  • xargs 完全理解マニュアル - xargs は拡張引数 (extended arguments) の略って知っていますか? - Qiita

    xargs 完全理解マニュアル - xargs は拡張引数 (extended arguments) の略って知っていますか?ShellScriptUNIXシェル芸POSIXUnix哲学 はじめに xargs コマンドは「なにか凄そうだけどよく分からないコマンド」としてよく知られています。使う人は使うけど何をやっているのか全くわからないコマンドです。また、やっていることがわかっても実際に使ってみると、空白やクォーテーション文字でエラーになってしまう使い方がとても難しいコマンドです。この記事はそういうよくわからない xargs はどういうコマンドなのか解説します。この記事を読むと xargs を「完全に理解した」と言えるようになるでしょう。 xargs コマンドが難しい理由は、xargs 自体の設計や実装の問題で古い時代の制限が多いからです。仕様が意味不明で一貫性がなくで他のコマンドと正しく

    xargs 完全理解マニュアル - xargs は拡張引数 (extended arguments) の略って知っていますか? - Qiita
    masa8aurum
    masa8aurum 2024/01/01
    “xargs は難しすぎるコマンド、可能な限り使うな” “ネット・書籍に載っている xargs の使い方の多くは雑で「たまたま動いている」だけ”
  • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

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

    今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
    masa8aurum
    masa8aurum 2022/10/09
    “現在の sh は POSIX 準拠のシェルに置き換わっており Bourne シェルはもはや使われていません”
  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
    masa8aurum
    masa8aurum 2022/09/28
    “シェルスクリプトで安全にロックを行うのであれば flock コマンドを使うのが鉄板”
  • sedのパターンスペース・ホールドスペースの動作を図で学ぶ - Qiita

    概要 sedは、入力ストリームに対して様々なテキスト変換をおこなう、ストリームエディタです。 cut, grep, trといった基的なフィルタコマンドと比較して、柔軟なテキスト処理が可能です。 このsedの機能の1つとして、パターンスペース・ホールドスペースがあります。 高度なテキスト処理が可能になる反面、パターンスペース・ホールドスペースは、動作が理解し辛いという難点があります。 ですが、sedのパターンスペース・ホールドスペースの動作を丁寧に解説した記事は、私が探した限りでは見つかりませんでした。 そこで、sedを深く学ぶ方への助けとして、また私自身の復習として、sedのパターンスペース・ホールドスペースの動作を、記事としてまとめました。 記事では、sedのパターンスペース・ホールドスペースの動作を、図示して解説します。 実行環境 Arch Linux 4.8.8-2-ARCH G

    sedのパターンスペース・ホールドスペースの動作を図で学ぶ - Qiita
    masa8aurum
    masa8aurum 2021/10/18
    暇なときに息抜きに読む
  • Readline Cheat Sheet

    For detailed information see the GNU Readline library manual or type man readline. For information about Readline in Bash type man bash and search for ^READLINE or Commands for moving.

    masa8aurum
    masa8aurum 2020/12/09
    bash は readline を使っているため、基本的にこれらのコマンドが使えるようだ。なお Alt は Mac のターミナルだと Esc に相当
  • Make xargs handle filenames that contain spaces

    Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives Teams Q&A for work Connect and share knowledge within a single location that is structured and easy to search. Learn more about Teams

    Make xargs handle filenames that contain spaces
    masa8aurum
    masa8aurum 2019/01/22
    xargs を使いたいが文字列に空白が含まれる場合、どうすればいいか → d オプションで区切り文字を指定できる。 使用例: `ls *.mp3 | xargs -d '\n' mplayer`
  • 1