タグ

shellに関するs-shinのブックマーク (7)

  • Who sets $USER and $USERNAME environment variables?

    Also, will these variables always match currently logged-in username (they do on my Debian system)? Can I assume their availability in other Unix(-like) systems? I'm also curious why one would use whoami instead of just reading any of these variables.

    Who sets $USER and $USERNAME environment variables?
  • Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita

    コマンドのパスを知りたいんじゃなく、コマンドの存在をチェックしたいだけならwhichよりhashを使ったほうが良いかもっていう話。→追記: typeが最強っぽい。 追記: command -vも良い。プログラムの存在チェックorパスを探したいだけなら互換性を考えると一番良いかも。 比較してみる whichよりhashよりtype=command -vが高速→typeまたはcommand -vの勝ち whichは実ファイルという実体があるプログラムです。hashとtypeはbashの組み込みコマンドです。なので当然ですがプログラムの起動コストがない分hashやtypeの方が速いです。 $ time bash -c 'for((i=0;i<10000;i++));do which perl; done >/dev/null' real 0m7.739s user 0m2.928s sys 0m

    Bashでコマンドの存在チェックはwhichよりhashの方が良いかも→いやtypeが最強→command -vも - Qiita
  • シェルスクリプトでの正規表現マッチ - Qiita

    シェルスクリプトで正規表現でのマッチングを使いたい場合,少しぐぐってみると case 文を使えという内容のものがよくヒットするようですが,expr コマンドでも正規表現が使えます. #!/bin/sh if expr "aaabbc" : "b+c$" > /dev/null; then echo "hoge" fi # => hoge 正規表現を用いた場合,expr はマッチした位置や()でグループ化した結果を出力するので,要らない場合は /dev/null に捨てます. ちなみに, zsh では [[ ]] を用いて自然に正規表現が書けます.

    シェルスクリプトでの正規表現マッチ - Qiita
  • tailの結果をgrepの複数条件でフィルターしてリアルタイムで表示する - hoge256ブログ

    リアルタイムでアクセスログ等を表示するtailですが、単純に表示するだけではなく、grepで結果をフィルターしたい場合があります。そんな場合の技術メモです。 通常のログ監視等では-fをつけて次のような感じになります。 tail -f access.log grepでフィルターする場合はパイプで繋げます。 例えば、次の例では”.html”の含まれる行のみを表示します。 tail -f access.log | grep ".html" もちろん複数条件もできます。 次の場合は”.html”の含まれる行でかつ、”.gif”は含まれない行が表示されます。 tail -f access.log | grep ".html" | grep -v ".gif" ただし、上記の場合、grepが勝手に結果をバッファーしてしまい、ある程度たまってからでないと表示されません。 リアルタイムで表示されないと

  • 知らなかったyesコマンドの真の力 - harry’s memorandum

    yesコマンドとは? 'YES' - 妖精がみえてしまうジョンアンダーソンのプログレッシブバンドのことではありません。UNIX/Linux の yes コマンドを少しだけ語ってみたいと思います。 yesコマンドってなんですか?という人はまずUNIX/Linuxのターミナルで'yes'と入力してみましょう。 $ yes y y y^Cy がひたすら続きます。引数に文字列を渡せばその文字列をひたすら吐き出します。 $ yes "Cirque du Soleil" Cirque du Soleil Cirque du Soleil Cirque du Soleil Cirque du Soleil^Cこれ意味あんの?と思いたくなります。では何に使えるのでしょう? そうターミナルで対話的に行うときに なんと あの y を入力してくれるのです。 yesの例 まずテストファイル作成 $ for i i

    知らなかったyesコマンドの真の力 - harry’s memorandum
  • shellからterminalの幅と高さを取得(tput)

    2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6

  • Shebangという謎な事実上業界標準について

    Shebangとは、UNIXのシェルスクリプトの業界標準で、シェルスクリプトの一行目のコメントの、#!を意味する。sheが短母音か長母音か分からなかったので、英語ネイティブにたずねたところ、人によって意見が違う。短母音の方が多数派のようなので、一応シバンが近いものになるだろう。日語版のWikipediaでも、シバンとしている。この機能には他にも多数の名前があるが、もっとも有名なのが、Shebangだそうだ。 その業界標準的な文法は、以下の通り(ただし、後述するように、この文字列の扱いについては違いがある) #! 文字列 [改行] 普通、実行権限のついたファイルは、標準のシェルで実行されるが、このShebangがある場合は、#!から改行までの間の文字列を、後述するバラバラな方法で解釈して、execで実行し、その際の引数には元のシェルスクリプトファイルへのパスが指定される。 問題は、このsh

  • 1