はじめに シェルスクリプトで学んだことをまとめていきます. ほとんど自分用です. CURRENT=$(cd $(dirname $0) && pwd)の意味 これはどこでスクリプトを実行しても同じ結果になるためによく使うコマンドだそうです. スクリプトが置かれている場所の絶対パスをCURRENTに入れます. 実行するシェルがこちら
ShellScriptでドヤりたいGWアドベントカレンダー5日目いくで。 クリップボード管理アプリをShellScriptで作った。 そもそもはスプレッドシートから列をコピーしてA列とB列を入れ替えて貼り付けたいと思ったのが発端で、 どちらかというと副産物的な感じでクリップボード管理ができた感じ。 github.com デモ こんな感じのやつね。 クリップボード履歴を表示して、fzfで選択した順に水平に連結してコピーする。 クリップボードの監視 とりあえず既存のクリップボード管理アプリはどうやっているのか調べてみた。 「Clipy」というアプリはtimerを使用しているみたい。 github.com // MARK: - Clips func startMonitoring() { disposeBag = DisposeBag() // Pasteboard observe timer
data = list(map(int, input().split())) from statistics import mean, median,variance,stdev m = mean(data) median = median(data) variance = variance(data) stdev = stdev(data) print('mean: {0:.2f}'.format(m)) print('median: {0:.2f}'.format(median)) print('variance: {0:.2f}'.format(variance)) print('stdev: {0:.2f}'.format(stdev)) print('max: {}'.format(max(data))) print('min: {}'.format(min(data))) pr
オンプレミスのインフラエンジニアをやっていると、運用スクリプトを作ることがあります。 監視やバックアップなどの運用を自動化するものです。 ぜひ自動化して運用で楽をしたいものですが、品質担保には思った以上の工数がかかってしまいます。 そこで私は単体テストを実施したい!と思ったのですが、JUnitのようにツールを入れれば行けるというわけでもなさそうでした。 対話型コマンドが絡むシェルのテストのやりづらさ 運用スクリプトの中には、実行したら必ず0を返すような何も工夫しなくても書けるスタブでコマンドを置き換えることでテスト出来る場合もありますが、DBのバックアップなどでスクリプト内でミドルウェア特有のコマンドをたたいているような場合、スタブ化するために少し工夫がいります。 ShellTestStarterの紹介 というわけで作りました。 無駄にREADMEもきれいにしてみました。 releaseか
要約 テキストファイル末尾に改行を加える方法として,1)最終行に改行がない場合に改行を加える方法と,2)空行を加える方法とがある.前者には文字列操作系のコマンド(grep,sed,awk,他)とechoを用いる方法がある.後者にはechoを用いる.よくわからないときはechoで空行を加えて,後に不要な空行を削除すればよい. はじめに テキストファイルは文末が改行で終わることもあるし,終わらないこともある.そして,シェルスクリプトでテキストファイルを操作する際,文末の改行有無で不具合を生ずることがある.したがって,文末に改行をいれたり,逆に削除したりする操作は重要な技術といえる[1].そのためか,文章末尾に改行を加える方法[2][3],あるいは文末の改行を削除する方法がしばしば議論される[4][5].複数の方法があり意外に複雑である.ここでは,テキストファイル末尾に改行を加える方法を整理する
shellscript用のドキュメント生成ツールは、pythonやJavaとは異なりスタンダードなものがない印象があります。 (そもそもドキュメント生成される機会が少ないからかもしれない) そこで、いくつか発掘したツールたちを並べておこうと思います。 尚、筆者も独自拡張付きのツールをいつか作ります(いつか)。 shocco.sh Literate documentation tool for shell scripts (a la Docco) 公式HP: rtomayko.github.io/shocco Coffee Script用のドキュメント生成ツール、 Doccoのシェルスクリプト版です。 マークダウンでの表記に対応しているようです。 ただしGithubではすでにアーカイブされており、 公式のフォローはもうない ようです。コミュニティで運営してるかもですが。 特定の構文はなく、人
概要 昨今、DockerやVagrantなどが発展し、ローカル環境での開発が主流になってきています。 そんな中で、composer installの流し忘れやmigrationの流し忘れなど様々なことが起因し、ローカルの開発環境構築に時間がかかってしまうことが少なからずあり、 また、Dockerの知識が0の場合、コマンドなどを学習する必要もあるため、業務に着手するまでの時間的コストが大幅にかかってしまうことも少なくありません。 本投稿では、そのような作業フローを簡略化し、誰でも簡単にローカルの開発環境を作成できるヘルパーの作成を紹介します。 サンプルコード ディレクト階層 . ├── .git ├── .gitignore ├── README.md ├── build.sh ├── docker │ ├── .env │ ├── コンテンツ_db │ │ ├── Dock
はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑なタスクを効率的に、そして信頼性高く実行できます。 トイルとは、反復的でマニュアルな作業のことを指します。これには、例えば、手動でのシステムのスケーリングや、エラーのトラブルシューティング、ルーティンなメンテナンス作業などが含まれます。トイルを特定し、それを自動化することで、エンジニアはより創造的なタスクやプロジェクトに焦点を合わせることができます。 トイルを判別する方法としては、以下のような基準が挙げられます: 手作業であること 完全な手作業だけでなく、「あるタスクを自動化するためのスクリ
1 はじめに Linuxにおいてバックアップの方法は多々あります。 有名所だと、dump, dd, rsync等です。どれも使い勝手の良い便利なコマンドになります。 本記事では、その中でもオプションが豊富で様々なケースで使用できるrsync(アールシンク)コマンドを使用した指定ディレクトリのバックアップを行うシェルスクリプトを作成しましたので、使い方と一緒に紹介させていただきます。 2 概要 ● 概要 Linuxで、指定のディレクトリのバックアップを行うシェルスクリプトを作成する。 また、日次でスクリプトを実行することを想定し、差分バックアップ(ミラーリング)が可能なrsyncコマンドを使用する。 ● 機能要件 ・バックアップ方法はミラーリングを採用する ・コマンドの実行ログは別途ログファイルに出力する ● 実行環境 Linux OS #3 rsyncについて UNIXシステムにおける、差
ShellScriptの誤動作をチェックするためにShellCheckでLintを掛けてみました。兎に角Warningsを解消するのが大変でしたが、事故を防ぐには有効だと思います。 Linterを用いてのチェックを行う場合、個人的に一番厄介なのはシェルスクリプト。いずれの環境でも問題なく動かせることを見送るとしても、それでもWarning表示がなかなか消えません。 ShellCheckを使った、OSX環境でのWarning対処として実践してみたことについて書いてみました。 ShellCheck環境の設定 ShellCheckを有効にしておきます。 brew install shellcheck この記事での実行は coc-diagnostic にて。 :CocInstall coc-diagnostic とあるスクリプトのWarning潰し よくあるシェルスクリプトもWarningの宝庫で
はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑なタスクを効率的に、そして信頼性高く実行できます。 トイルとは、反復的でマニュアルな作業のことを指します。これには、例えば、手動でのシステムのスケーリングや、エラーのトラブルシューティング、ルーティンなメンテナンス作業などが含まれます。トイルを特定し、それを自動化することで、エンジニアはより創造的なタスクやプロジェクトに焦点を合わせることができます。 トイルを判別する方法としては、以下のような基準が挙げられます: 手作業であること 完全な手作業だけでなく、「あるタスクを自動化するためのスクリ
これから書く記事について MQTTを使った双方向通信と制御の勉強のために ラズパイ、ESP32等を使ったNWを構築 client端末から子機に接続されたモータードライバーでNゲージを遠隔制御 Nゲージを走行させる際の何らかのデータ(電流・電圧等)をAWSに転送・保存・加工 を構想しています。 既に構築していたNW部分を業務に転用したこともあり構築手順の備忘録を書き始めることにしました。 この記事で説明すること 本稿では、想定する下図のシステム中で太い破線で囲まれたラズパイAP親機の構築について説明します。 環境 Raspberry Pi: Raspberry Pi 4 Model B Rev 1.2 OS: Raspberry Pi OS Lite 32-bit (Raspbian GNU/Linux 11 (bullseye)) USB Wifi adapter: Realtek Sem
大畑です。 皆様は「AWSCLI」を使ったことはございますでしょうか。 私はインフラ部門に所属し、AWSを主に使っているのですが、クラウド基盤の構築は基本コンソールを使って行うことが多いです。 またAWSCLIを初めて触った時も、 「ドキュメントでコマンドを調べて入力するの面倒だなあ、コンソールしか勝たん」 のような状態でした。 しかし、現場でShellを使い始めてから、 「AWSCLIやるやん、ShellScriptと組み合わせたら最強やん」 と意見が反転し、謎の関西弁が出るようになりました(*'▽') ということで今回は 「AWSCLI+ShellScriptでクラウド基盤構築を効率化する」 をお送りします。 AWSCLIとは? AWSCLIとは、AWSコマンド(C)ライン(L)インターフェース(I)の略称で、コマンドの入力を通じてAWSサービスの管理を行える公式ツールです。 使用する
目的 変数に格納された\を/に置換する方法を知る。 Windows表示のファイルパスをLinuxのものに書き換える方法を知る。 書き方の例 変数に格納された文字列の置換を用いて\を/に変換する。 変数には\を含む任意の文字列が格納されているものとする。 変数内の文字置換は${変数名//置換対象文字/置換後文字}で処理することができる。 下記にShellScriptの処理を記載する。 上記の書き方だと若干分かりにくいので解説をする。 変数名の次の//はマッチしたものをすべて置換する命令 //の後の\\は最初の\がエスケープ命令で、後ろの\が置換前文字 \\の後の/は置換前文字と置換後文字を区切るもの 最後の/は置換後文字 前述の内容を踏まえ、今回の処理をわかりやすくスペースを入れて記載する。
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く