タグ

shellscriptに関するyajamonのブックマーク (6)

  • シェルスクリプトの set -e は罠いっぱい

    ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu Perl では最初に use strict; use warnings すべきなように、シェルでは set -u すべき。「例外処理って何? おいしいの?」って人は set -e もしておけ。 2012-06-25 18:25:20 ふみやす@シェルまおう(自称でない) FGO:838,149,789 @satoh_fumiyasu シェルスクリプトをまともに書けない奴は、それでも書かなければならないときは、とりあえず変数展開するとき必ずダブルクォートで括れよ。$foo じゃなくて "$foo” な。あと最初に set -u; set -e でもしておきな。シェルスクリプトが駄目なんじゃなくて、書けないだけ。 2012-12-22 00:27:38

    シェルスクリプトの set -e は罠いっぱい
  • シェルスクリプトの中でjoin()とsplit()相当の事をやる - Qiita

    この記事は以下の記事のフォローアップです。(Shellscript Advent Calendar 2016に追加エントリーしたかったのですが空きが無かったので単独で公開) シェルスクリプト(Bash)で作るTwitterクライアント プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 結論を先に書くと、シェルスクリプトの中で普通のプログラミング言語で文字列を区切り文字で分割して配列にする操作、いわゆるsplit()相当の事はtr '区切り文字' '\n'でできます。その逆の、配列を結合して1つの文字列にする操作、いわゆるjoin()相当の事はpaste -s -d '区切り文字' -と覚えておくのが筆者的にはオススメです。 (ちなみに、GNU coreutilsのコマンドでjoinという物がありますが、これは配列のjoin()ではなく、SQLで言うところ

    シェルスクリプトの中でjoin()とsplit()相当の事をやる - Qiita
    yajamon
    yajamon 2017/09/15
    paste,
  • プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita

    記事が切っ掛けとなってお声がけを頂き、記事の増補リファイン版となる記事をSoftwareDesign 2018年1月号のシェルスクリプト特集第2章として執筆しました。リファイン版には、この記事で触れていない文法面での分かりにくさについての解説が含まれています。その文法面での分かりにくさの解説の一部に相当する記事もありますので、ぜひそちらも併せてご覧下さい。 Shell Script Advent Calendarをご覧の皆様、図々しくも5日目に続く2度目のエントリーのPiroです。 前回は自作のBashスクリプト製Twitterクライアントをネタに実装を解説しましたが、今日は他の言語で多少のプログラミング経験はあるんだけど、どうにもシェルスクリプトは苦手だ……という人のための、シェルスクリプトによるプログラミングの勘所を解説してみようと思います。多分、プログラミング入門レベルの人や上級

    プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita
  • シェルスクリプトで乱数を扱う - hyconの日記

    シェル組込変数 RANDOM bashやzshなど一部のシェルでは特殊な変数 RANDOM があり、参照する毎に範囲の小さい整数を得ることが出来ます。 $ echo $RANDOM 30940 $ echo $((RANDOM % 100)) 22 jot(1) jot(1)は連番や乱数を出力するプログラムです。出力回数や範囲を指定出来るのでなかなか使い出はあります。deb系では athena-jot パッケージをインストールします。 $ jot -r 1 10 99 72 $ jot -r 10 1000 9999 8881 2834 3537 5889 7430 9962 4905 9548 3575 9762 awk awkの関数 rand() で0–1の範囲の実数の乱数を扱えます。srand() で乱数の初期化することを忘れずに。 $ awk 'BEGIN{srand();prin

    シェルスクリプトで乱数を扱う - hyconの日記
  • Cureutilsを使ったプリティでキュアキュアなターミナルライフの実現 - Qiita

    ADVENTERのプリキュア Advent Calendar 2016の13日目の記事です。 日々の作業を便利にする *utils を活用しよう 端末上の対話シェルで作業をすることが多い方は、最初からインストールされているコマンドだけでなく、新たにコマンドをインストールして使う方が多いと思います。 例えば、OSXをお使いの方で、coreutilsという、GNUの標準コマンドが含まれたツール集をインストールする方をよく見ます。便利なので、よく私もお世話になっています1。 他にも、似た名前の moreutils というツール集もあります。coreutilsと違い、少し複雑な動作や機能を提供してくれるようなものが含まれます2。これも、使いこなすと日々の仕事を楽にできそうです。ちなみに私は、よくspongeコマンドにお世話になることが多いです。 また最近では、dateutils というツール集を使

    Cureutilsを使ったプリティでキュアキュアなターミナルライフの実現 - Qiita
  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • 1