タグ

Shell Scriptに関するKenji_sのブックマーク (15)

  • Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita

    expect編以外に書くつもりは毛頭ありません。 manを見てもググってもどうにも手がつけられない程度に分かりづらかったので、備忘録としてまとめます。 expectって何? 対マシンに於いて発生する、マシンからの問いに対し、人間がキーを叩いて返答する、所謂対話を自動化するコマンド及びモジュールです。 今回はLinux上のexpectコマンドを取り上げますが、CでもC++でも同様の処理が実行可能なようです。 RubyPerlでも書き換えられ、モジュールとして配布されているようです。 元はTclというプログラム言語ベースのコマンドです。 コマンドとは言いましたが、使い道はほぼスクリプトとなるかと思います。 というかコイツをワンライナーでどう使えばいいのかよくわかりません。 また、expectはコマンドというか言語であるようです。 expectはTclのスーパーセット(Tclを包括し、更にオプ

    Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita
  • ShellCheck – shell script analysis tool

    GPLv3: free as in freedom documented on the ShellCheck Wiki available on GitHub (as is this website) already packaged for your distro or package manager supported as an integrated linter in major editors available in CodeClimate, Codacy and CodeFactor to auto-check your GitHub repo written in Haskell, if you're into that sort of thing.

  • shunit2 shcov を使ってシェルスクリプトのテストコードを書いてカバレッジを計測する

    プログラミング 2944 view [Test][ShellScript]シェル(Bash)で shunit2 shcov を使ってテストを書いてC0カバレッジを測る 概要 シェルスクリプトでもTDDするためにテストコードを書いてカバレッジ測定をする。 テストにはshunit2を使用し、カバレッジ測定にはshcovを利用する。 shunit2 shcov は利用が簡単のためおすすめだが、メンテナンスが十分されるかどうかが心配。 テスト インストール wget https://shunit2.googlecode.com/files/shunit2-2.1.6.tgz tar zxvf shunit2-2.1.6.tgz テストを書いてみる vim firstTest.sh --- #!/bin/bash ### firstTest.sh ### function testWeCanWrit

    shunit2 shcov を使ってシェルスクリプトのテストコードを書いてカバレッジを計測する
  • プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita

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

    プログラマーの君! 騙されるな! シェルスクリプトはそう書いちゃ駄目だ!! という話 - Qiita
  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
  • 既存プロセスの標準出力と標準エラーを奪う - Qiita

    #!/bin/bash # 既存プロセスの標準出力と標準エラーを奪う https://qiita.com/kawaz/items/96af6fa59fdf999b94bd # ターゲットのPID pid=$1 [[ -d /proc/$1/fd ]] || exit 1 # 出力先はttyやファイルを指定 out="$2" # 出力先の指定がない場合は現在のttyを出力先にする if [[ -z $out ]]; then # プロセスに紐付いたttyを取得する https://qiita.com/kawaz/items/bd33fe1e29876939dddb function search_tty() { local pid=${1:-$$} tty="" while [[ 1 -lt $pid ]]; do [[ -d /proc/$pid/fd ]] || break tty=$(

    既存プロセスの標準出力と標準エラーを奪う - Qiita
  • gitで現在のブランチ名を取得する - すがブロ

    一覧の情報はいらなくて、現在のブランチ名だけが欲しい ようするにシェルスクリプトとかで扱うときに git branch の結果ではなく、そのものずばりカレントブランチ名を取得したい。 いくらなんでもそういうインターフェイスあるでしょーと思ったらgit rev-parseで取得できるようだ。 sugamasao@GRAM% git rev-parse --abbrev-ref HEAD master sugamasao@GRAM% git checkout -b test Switched to a new branch 'test' sugamasao@GRAM% git rev-parse --abbrev-ref HEAD test sugamasao@GRAM% git checkout master Switched to branch 'master' sugamasao@GRA

    gitで現在のブランチ名を取得する - すがブロ
  • 現在のブランチ名を取得するコマンド - Qiita

    branch コマンドの contains オプションは、指定したコミットを含むブランチのみを表示する。 コミット指定を省略すると HEAD が指定されたとみなすので、以下でも上記コマンドと同じ意味になる。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    現在のブランチ名を取得するコマンド - Qiita
  • 続・ラフなラボ – シェルスクリプトが '> $logfile 2>&1' だらけにならなくて済んだ話

    ※ 2014-04-26 追記並びに一部コマンド部分の修正を行いました。( > => >> に変更 ) 個人用のチラシの裏のつもりが予想以上に反響いただいていたようで非常にびっくりしております。 ちょっとしたバッチ処理的なものはさくっとシェルスクリプトでやっています。 で、ログをとっておくべくリダイレクトを噛ますわけですが、 スマートに書く方法を調べたのでメモ。 元ネタは @sechiro さんの bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する でございます。 当に参考になりました。ありがとうございます。 今までは こんなことやってたわけです。 #!/bin/bash LOGFILE=/tmp/script-log command1 >> $LOGFILE 2>&1 command2 >> $LOGFILE 2>&1 ... >> $LOGFILE 2>&1

  • 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 コマンド・シェルスクリプト リファレンス
  • GNU Parallelがすごすぎて生きるのがつらい

    皆さん今日もたくさんのサーバを相手にされていることかと思いますが、いくつかのサーバにアクセスして 1 秒間の統計情報(例えばvmstat 1 2)を集めてパッと表示したい時ってどうやってますかね?shell script を学びはじめたばっかりの僕はこんな感じで書いてました。 $ for i in host1 host2 host3; do ssh $i "vmstat 1 2 | tail -1"; done 0 0 0 329004 210836 14275360 0 0 0 2424 1410 1828 0 0 100 0 0 0 0 0 3716112 587704 25921684 0 0 0 488 1643 2026 0 0 100 0 0 1 0 0 555440 265560 14015548 0 0 0 4204 1534 2392 1 0 99 0 0 vmstatと

    GNU Parallelがすごすぎて生きるのがつらい
  • Bourne Shell自習テキスト

    UP This page is in JAPANESE. 作成:1999年6月9日(水) 更新:2001年1月13日(土):原著者のページへリンクを張りました コマンドラインからプログラムを実行するとき、いつもいつもたった一 つのコマンドだけを実行させていませんか? コマンドラインを作っているのはシェルと呼ばれるプログラムです。こ こにあるドキュメントは、その一種であるBourne Shell の入門書です。 Unixをうまく使うには、シェルの使いこなしも大きなポイントです。 このページにあるドキュメントについて このページにあるドキュメントは、木村孝道氏がLaTeX でお 書きになって 配付してくださっているもの を、latex2html を用いてhtml化したものです。私はこの文書を読んでシェ ルスクリプトが書けるようになりました。木村氏に感謝です。 Bourne Shell自習

  • ryoppy/scripts · GitHub

    Kenji_s
    Kenji_s 2012/03/05
    サーバーセットアップやミドルウェアのインストールを簡単に行えるものや、 SSL取得用にCSRを簡単に作れるものなど
  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

    エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
  • シェルスクリプトに香辛料 | スラド ハードウェア

    GUI のアプリケーション開発は時間とお金がかかる。Unix 系のスクリプトは CLI ベースで走るきわめて洗練されたプログラミング言語だ。設計は簡単ですぐに作れるが Unix コマンド同様ユーザフレンドリーというわけではない。Linux / Unix で走る bash は、対話式で使いやすいグラフィカルなインターフェイスで実行できるスクリプトを書くツールを提供している。このようなピリリとした趣を与える香辛料として、Linux / Unix プラットフォームでどんなツールを使ってますか? タレコミ人がリンク先で紹介されている tput と zenity コマンドを RHEL で試したところサンプルどおりに動作した。自分で使う分には CUI で十分なのだが、自作スクリプトをオペレータに依頼して実行してもらうような際にはこのような GUI も有効かもしれない。

  • 1