ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Bash

Bashのプロセス置換のメリットを考えてみた

(2024-05-21 初稿) Bashには、プロセス置換という便利な機能があるが、ちょっと使い方やそのメリットがわかりにくかったので、そのメリットについていくつかの例を考えてみた。 今回の記事は、以下のサイトを参考にさせて頂いた。多謝。m(__)m Bash初心者か…

Bashで無理やりエクセルファイル(xlsx)を編集する(邪道編)

(2024-05-09 初稿) 先日からBashを使って、CSVファイルを操作してエクセルファイル(xlsx)を作成する等の記事をアップした。 Bashでカンマ区切りのCSVファイルを扱う - ひゃまだのblog LibreOfficeを使ってコマンドラインでCSVファイルをエクセルファイル(xls…

Bashで楽天証券からダウンロードした保有商品一覧ファイル(CSV)を加工してエクセルファイル(xlsx)にする

(2024-05-08 初稿 ) 新NISAが始まって、株を始めた方も多いのではと思う。 筆者も、最近、株をボチボチやっているのだが、最近、株価や為替相場が乱高下して日々の株価が気になっている。 そこで、少しでも楽ができるようにBashを用いて、楽天証券からダウン…

Bashのパイプを利用した関数呼び出しの罠

(2024-05-01 初稿) よく言われていることだが、Bashでパイプを使うと、サブシェルを使うと思わぬ弊害がでる記事はよく見ていたのだが、自分でスクリプトを作成してハマってみて、ようやく理解できた。 確認のサンプルスクリプト 関数の呼び出しの引数をつな…

LibreOfficeを使ってコマンドラインでCSVファイルをエクセルファイル(xlsx)ファイルに変換する

(2024-04-30 初稿 -2024-05-01 追記) 先日からCSVファイルを操作するスクリプトを作成している。 作成する中で、LibreOfficeにコマンドラインでCSVファイルをエクセルファイル(xlsx)に変換する機能があることを見つけた。 Linuxでシェルコマンドからエクセル…

Bashでカンマ区切りのCSVファイルを扱う

(2024-04-26 初稿) こちらのblogは、ちょっと久しぶりにアップする。 最近、株の乱高下が激しいので、楽天証券の保有株一覧を見ているのだけど、不要な列があったり、ちょっと特殊な集計をしたかったりするので、自分で表計算ソフトにちまちまとコピぺしてい…

Bashのwhileとforの無限ループと{}(ブレース)への対応について

(2024-02-11 初稿) Bashの while と for を利用していて、どうしてそのような仕様になっているのか、不思議なので記事にしてみた。 まずは、whileを使った無限ループは、以下のとおり。 なお、無限ループを抜けるのは、Ctrl+c(コントロールとcを同時に押す)…

Bashの便利なブレース展開(Brace Expansion)

(2024-02-08 初稿 ) Bashにはブレース展開と呼ばれる便利な機能がある。 このページでは、以下のサイトを参考に作った筆者の備忘録である。 Bash Reference Manual 第42回 bashの便利な機能 | gihyo.jp bashのブレース展開についてまとめ #Linux - Qiita 基…

Bashのパラメータ展開による大文字、小文字変換

(2024-02-02 初稿 - 2024-02-05 追記) Bashの文字列演算子については、以前、以下のページに記述した。 Bashの文字列演算子 - ひゃまだのblog 先日ネットを検索していたら、Bash 4.0以降のバージョンでは、アルファベット文字の大文字や小文字に変換すること…

Shellcheckを使ってBashスクリプトのチェックと最適化

(2023-01-29 初稿 ) はじめに 筆者は、Bashスクリプトをよく利用しているが、その独自の記述方法のためにエラーが起きたり、思いどおりに動作させられないことがしばしばある。 最近、ネットで shellcheck のことを知り、シェルスクリプトの強力な助っ人にな…

bashの{} (Braces) に関するメモ

(2024-01-16 初稿 ) 本日、Bashスクリプトを作っていて、ちょっとハマったのでメモ。 Emsg="ファイル数が合ってないよ" [[ $(ls -1 | wc -l) -ne 10 ]] && { echo $Emsg; exit 1 } /home/hoge/bin/bash-test: 行 28: 構文エラー: 予期しないファイル終了 (EO…

Bashで三項演算子ぽいもの

(2023-01-02 初稿) Bashで if 文の書き方があまり好きではない。 具体的には、if ; then と判定文とthenの間に、「;」(セミコロン)が入るのがどうも気にいらない。 できれば、ruby や python等のように、print("true") if a=0等のように if 文を最後に書く書…

Debian 12(bookworm)で~/binにpathを追加する

(2023-12-25 初稿 - ) 今更感が半端ないけど、Debian 12(bookworm)でLXDE環境を新規にインストールしたときに、~/binにpathが通らないので不便だ。 ちなみに、筆者が使っているログインシェルは、Bash。 どうも、CUIやsshでログインした時と、Xからlightdmで…

BashスクリプトのみでDockerを管理する

(2023-12-08 初稿 - 2024-05-07 修正) Dockerをしばらく使っていると、いろいろなImageとconteinerが溜まって来るとともに、Dockerfileも溜まってきて、どれがどのDockerfileかわからなくなって来る。 (もちろん、Dockerfileに名前を付けて、呼び出すことも…

JavascriptでなんちゃってMusic Serverを作る

(2023-10-31 初稿 - ) これまで、Webサーバーを立ち上げたり、Javascriptで日付や時間、CGIを動かしてきた。 PythonでWeb Serverを立ち上げる Javascriptでホームページに日付と時刻を表示する JavascriptでCGIを起動して、起動元のページにCGIの出力を表示…

Debian 12(bookworm)の Docker で Tensorflow を動かす

(2023-10-25 初稿 - ) Debian 11 (bullseye) から Docker で、TensorFlowを使ってきたけど、12(Bookworm)もマイナーアップデートしていることだし、そろそろDockerの環境を入れ替えて末永く使おうと思った。 Debian 11(Bullseye)にDockerのインストール Dock…

PythonでWeb Serverを立ち上げる

(2023-10-17 初稿 - 2023-10-27 追記) (2023-10-27 追記) いつの間にかRaspberry Pi OSも、12(bookworm)が公開され、Pi 4または5でwaylandを利用している場合は、後述する autostart の方法では自動起動することができなくなった。 Waylandを使っている場合…

Bashでもprintfが使える

(2023-08-22 初稿) 恥ずかしながら、つい最近までbashでprintfが使えることを知らなかった。 これまで、echoで一生懸命整形したり加工したりして出力してたこと。^^; さて、printfの使い方は、man 3 printf等を見て欲しいが、echoと違ってとても高機能。 い…

シェルスクリプトの先頭行にshebang(#!)を書く

(2023-08-21 初稿 - 2023-08-22 追記) bash等のスクリプトをファイルに記述する場合は、先頭行にshebang(シバン)を記述する。shebangでスクリプトを実行する処理系(インタプリタ)を指定することになる。 bashでは、以下のように記述することが多い。 $ which…

Bashスクリプトのechoで改行を含む複数行のメッセージを表示する

(2023-07-24 初稿) bashスクリプトで、改行を含む複数行のメッセージを出力したいときがある。 ヒヤドキュメントを使う方法等、様々方法があるようだが、一番シンプルな方法が以下のサイトに記述があったので、筆者のメモとして書き残す。 bashで複数行の文…

mkdir -p って便利だね

(2023-07-19 初稿) Bashスクリプト等でディレクトリを作る際は、いつも既にディレクトリが有るか無いかを確認してからディレクトリを作成していた。 例えば、カレントディレクトリにtempディレクトリを確認して、無い場合にディレクトリを作成していた。 if …

Bashスクリプトで複数行をコメント化

(2023-06-13 初稿) Bashスクリプトを作っていて、コメント化する場合、1行のみや行の途中からの場合は、#を用いてコメント化できる。 ただし、複数行をコメント化するのは、少々面倒だ。 筆者の場合、vimを使うことが多いので、C-v、j(矩形選択)、S-I、#、E…

Sedで途中の行を抽出する

(2023-06-11 初稿 - 2023-06-12 修正) sedを用いて、途中の行を抽出する。自分用のメモ。 $ cat test.txt 1: a 2: b 3: c 4: d 5: e 上記のようなファイル(test.txt)がある場合、3〜4行を抽出する場合、sedでは以下のように記述する。 $ cat test.txtt | sed…

フォルダ内のファイルをランダムに指定個数選んで表示(コピー、移動)する

(2023-06-07 初稿 - 2023-06-11 追記) 元ネタは、以下のサイトの「フォルダ内のファイルをランダムに10個コピーする」で、素晴らしいアイデア。 フォルダ内のファイルをランダムに10個コピーする - Qiita ワンライナーで汎用性が高いのだけど、筆者はすぐに…

chatGPTにbashスクリプトを書いてもらう

(2023-04-28 初稿) 最近、はやりのchatGPTを使って、bashスクリプトを作ってもらった。 作ってもらったbashスクリプトは、以下のページある株価を取得するもので、簡単にするためにVYMのみの株価を取得するようにした。 BashでGoogleファイナンスをスクレイ…

BashでGoogleファイナンスをスクレイピング

(2023-04-06 初稿 - 2023-04-27 追記) ランキング参加中プログラミング ランキング参加中Debian ランキング参加中Linux はじめに 来年(2024年)から新NISAが始まるようで、投資するお金はないけど、投資の練習だけはしておこうと、Googleファイナンスをスクレ…

bashでもinkey$のようなキー入力を得たい

(2023-04-03 初稿 - 2023-04-08 修正) ランキング参加中プログラミング ランキング参加中プログラミング ランキング参加中Debian ランキング参加中Linux 以前、pythonでも同様にキー入力を受けるためのスクリプトを紹介した。 python CUIでキー入力 - ひゃま…

bashスクリプトで画像等GUIを表示しても、フォーカスを失わずにスクリプトを継続実行する

(2023-04-02 初稿 - 2023-04-08 修正) ランキング参加中プログラミング ランキング参加中プログラミング ランキング参加中Debian ランキング参加中Linux 新年度、初投稿。2023年度もよろしくです。 最近、bashスクリプトが楽しくて、気がつくとスクリプトを…

bashでimportっぽいことをしてみる

(2023-03-31 初稿 - 2023-04-08 修正) ランキング参加中プログラミング ランキング参加中プログラミング ランキング参加中Debian ランキング参加中Linux bashでも、他のスクリプトで作成したfunctionをimportして使ってみたい。 pythonなら、if __name__ == …

コマンドライン引数の最大文字数

(2022-08-31 初稿 ) 最近、Bashスクリプトを書くのが楽しくて、先日も、大量のコマンドライン引数を必要とするBashスクリプトを書いたので、気になって最大文字数はいくつなのか調べてみた。 その結果、以下のサイトに調べ方と答えがあった。多謝。m(__)m コ…