シェルスクリプトで複数のファイルを同時にオープンして交互に読み取る
はじめに解説することもない小ネタですが意外と見かけない気がするので。pasteコマンド相当のものを独自で実装したい場合とか、ファイルディスクリプタのサンプルとして補足 pasteコマンドは POSIX で規定されていますが OpenWrt...
View ArticleGoogleスプレッドシートのデータをシェルスクリプトで読み込んで整形し、JSファイルとして書き出す。
ときどき更新されるスライドショーのようなもののために、静的にJavaScriptファイルをたくさん作る必要がありました。いろいろと試行錯誤した結果、Googleスプレッドシートでデータを管理して、シェルスクリプトで読み込んで処理するというものになりました。シェルスクリプトはよく知らないので、もっといい方法がある気がします。ひとまずは事足りたのでこちらにメモしておきます。Googleスプレッドシートの...
View ArticleWSL2 + Ubuntu 20.04 で npm実行時「bash: /mnt/c/Program Files/nodejs/npm:...
初投稿になります、よろしくお願いします。環境wsl2 Ubuntu20.04状況npm installを実行後bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or...
View Articleシェル覚え書き
ファイルのリストアップディレクトリのみを1階層だけリストアップfindコマンドが使える。リストアップしたいディレクトリが入っているディレクトリのパスをfindの位置引数として指定し、オプションをそのあとに続ける。例えばカレントディレクトリにあるディレクトリのうち、ディレクトリ名に 'vae' と入っているディレクトリを、1階層だけリストアップするには次のようにする。> find .-type...
View ArticleSnakemake 普通に動いていたのに、ジョブスケジューラになげたらエラーになるとき
概要以下のことができるが、ジョブスケジューラにジョブが投入できない時 - 実行しようとしているコマンドは単独で実行できる - ジョブスケジューラにジョブを投げることができ、正常に実行される - snakemakeでも、ローカル実行は正常に実行される以下のメッセージが行っていることが自分の今の状況と合わない気がした時。(one of the commands exited with non-zero...
View ArticlebashのSECONDS変数の処理時間を時分秒フォーマットにする
SECONDS変数を利用して処理時間を計測後、分かりやすいように時分秒フォーマットに変換するtime.sh#!/bin/bash # Initialize the command in seconds.SECONDS=0 # Program to be measured.sleep 10 # Display the measurement time.i=$SECONDS((sec=i%60,...
View Articletmuxとbashだけで、ブラウザクラッシャー「you are an idiot」を再現する 続編
tmuxを使ってターミナルを分割して増えるyou are an idiotを作りたい!前回までのお話前回の記事前回実装した機能は以下の通り。trapでCtrl - Cを押すたびに☺が増える。そのため、プロセスからkillする必要がある。tputで白黒に点滅する。soxを使って「You are an idiot♪」が流れる。環境Ubntu 20.04LTSGNU bash, version...
View ArticlebashスクリプトでJSONを組み立ててcurlでPOSTする
やりたいことbashスクリプトで簡単なテストデータをループで作成してcurlでPOSTしたい。ハマる最初は変数にJSONをつっこんでcurlの引数に付けてましたが、ダブルクォートや波括弧が邪魔して思うように行かないのでググる。...
View Article【Ruby】FAT32用にmp4を4GB以内に分割する【ffmpeg】
FAT32の壁通常であればFAT32なんて使わずに他のフォーマットを使えばいいわけで、そしてリミットである1ファイル4GB以上の動画ファイルを扱うなんてことはあまりないと思うが…たまに、この問題に遭遇する。例えばFire TV(2015)で使えるmicro...
View Article【コピペOK】bashでnodeとyarnのインストールをする方法
こんにちは、くりぱんです。この記事で実現できることhomebrewのインストールnodebrewのインストールNode.jsのインストールyarnのインストール開発環境macOS...
View Articleシェルのリダイレクト時に元ファイル名を利用する方法
概要シェルでデータを加工する際に、bashのパラメータ展開を利用することで拡張子だけ変えたりすることが出来ます。やり方例えばcatで"temp.txt"を出力して、出力結果を"temp.csv"にしたい場合以下のようにしますparameter.shdata = temp.txt...
View Article長く実行されているプロセスを消す
サーバのプロセスで、あるどこかの開発者がつくったんだけどそれが終了せずずっと動き続けているという経験は、誰しも遭遇したことがあるのではないでしょうか。そんなときに使えるスクリプトです。 これを crontab などで定期的に実行させると、突如現れた終わらないプロセスを終了してくれます。「増産された Apache (httpd) の子プロセスを消すスクリプト」,...
View Articleシェルスクリプトでよく使う書き方
webアプリケーションやサーバの運用をしているとシェルスクリプトを書くことが多いです。シェルスクリプトでよく使うコードの書き方を知っておくと良いと思いまとめました。・文字列比較で部分一致を判定#!/bin/bash## 変数にhogeが含まれるかを調べるFOO="fugahoge"if["`echo$FOO | grep"hoge"`"];then...
View Articleawscli で help したときにサブコマンドの頭についている約物は何なのか
AWS で Cloud Shell が使えるようになったことで、awscli の活用シーンが増えていく気がしています。awscli 初心者なので help を眺めることが多いのですが、ふとサブコマンドの一覧を一画面に収めたい気持ちになりました。とりあえずIAMのヘルプ$aws iam help...(略)... NAME iam - DESCRIPTION AWS Identity and...
View Article便利なシェルの使い方
便利のいいシェル使いやすい環境+あまり他のものと被ると問題なので有効化/無効化は手動で行えるシェルを作成してみた。ターミナルで以下のコマンドを入力してください。yurilove@useryurilove@user:~$ bm=beat_mario yurilove@user:~$ mkdir$bm yurilove@user:~$ cd ~/$bm...
View Article【シェルスクリプト】ファイルを1行ずつ読み込んで処理する方法
while read文を使って次のようにするとテキストファイルを1行ずつ読み込んでなんやかんやすることができます。(Solarisではこの書き方はできないようですが、あまり使われていないOSですので考慮しなくても良いと思います。)#!/bin/bashFILE_NAME=/fuga/hoge/fizz.txt while read LINE do# コマンドdone<...
View ArticleMac で git rebase master を自動でやるバッチ(.commnad)
チーム開発をしていると、何度も何度も使う git rebase master を自動でやるバッチ(.command)を作成したので紹介します。応用篇では現在の作業ブランチをバックアップするバッチも紹介しますので、ご興味のある方は是非読んで下さい。不慣れな bash なので、あまり良いコマンドではないかもしれませんが、ご指摘あればコメントお願いします。改善、改善。手順.command...
View ArticlePOSIX準拠シェルスクリプトでオブジェクト指向プログラミング
はじめにまずはじめにシェルスクリプトでオブジェクト指向プログラミングを行うのは推奨しません。他にもっと良い言語があるからです。この記事は何かをシェルスクリプトで実装したいけれど、オブジェクト指向的なことが必要になってしまったという運が悪い(良い?)場合に、それが可能であることを示す概念実証のようなものです。クラスとインスタンス相当のみの実装で完全なオブジェクト指向とは程遠いです。既存フレームワーク実...
View Article[bash] カレントディレクトリが存在しなくてもcd ./は成功する
環境$ bash --version bash --version GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu) 事象$ mkdir test; cd test; $ rmdir ../test <- カレントディレクトリを削除 $ cd ./ cd: error retrieving current directory:...
View Article