Bashスクリプトで九九表を作ってみた
Bashスクリプトを仕事で欠かないといけないので、学習がてらBashスクリプトで九九表を作成してみました。 全体のコード #!/bin/bash function munipulate(){ for ((stepNumber=1 ; stepNumber<10 ; stepNumber++)) do printf $stepNumber"の段|" for ((i=1 ; i<10 ;...
View Articleシェルスクリプト (bash等) で if - then - else の中身をコメントアウトした時のエラーの回避方法
TL;DR シェルスクリプト(POSIX 準拠)では if - then - else の中をコメントだけ、または空にしてはいけません。以下のシェルスクリプトを POSIX シェル(dash, bash, ksh 等)や Bourne シェルで実行するとエラーになります。 if true; then # echo "この行をコメントアウト" fi # 何も書かない場合も同様 if true;...
View ArticleMacのターミナルでBase64をデコードすると出力の末尾に"%"が挿入される
事象 % echo $SHELL /bin/zsh % echo -n M | base64 TQ== % echo TQ== | base64 -d M% 対応策① ZshではなくBashで実行すると%が表示されなくなる。 (出力に改行が挿入されないので,見やすさのためデコードした後echoを入れています) % bash The default interactive shell is now...
View Articleubuntu で 「-bash: warning: setlocale: LC_ALL: cannot change locale...
日本語言語パックをインストールする。 sudo apt install -y language-pack-ja 以上。
View Articlefish $PATHの設定方法がわからん
環境構築した際、これで躓いたのでメモついでに書きます zsh bash etc export PATH=\$HOME/hoge:\$PATH で環境変数に設定できると思うのですが、 fishで同じ書き方をすると、、、 echo \$PATH /usr/local/bin /usr/bin /bin /usr/sbin /sbin はい。うざいですね。 そんな時はdocumentを見に行きましょ...
View Articleバックグランドで実行しているシェルを親シェルからkillする
$ more dummy.sh get-pid-of-background-process-and-kill.sh :::::::::::::: dummy.sh :::::::::::::: #!/bin/sh for i in `seq 1 1024`; do date -R sleep 3 done ::::::::::::::...
View ArticleBatsを使ってbashのUnitTestを行う
はじめに shellScriptコードの自動テストを簡単にやりたい人向けのメモ、カバレッジ分析等はリッチな機能は対象外 ちなみにBatsとbats-coreが存在するが、現在は bats-core/bats-coreがメンテされている 検証環境 Ubuntu 21.04 bats-core 1.5.0 bats-support, bats-assert 0.3.0 インストール方法...
View Articleシェルスクリプトで土日判定を行う方法
業務で、yyyymmdd形式で渡された日付データの土日祝日判定を、 シェルスクリプトで行いたいという経緯があり、作成しました。 今回はその中の土日判定のみについて紹介します。 完成品 # # description # # 土日であるか調べる # # Args: # # $1 - 判定する日時(yyyymmdd形式) # # return: # 土日の場合 0 # 平日の場合 1 #...
View Article【MySQL】`nohup mysqldump`したらリストアに失敗した
MySQLのデータをmysqldumpコマンドでバックアップ&リストアしようとしました。 なにがおきた? テーブルのバックアップを取るとき、何も考えずに nohup mysqldump -u 'hoge' -p'fuga' 'database' table > table.backup & ってやったら、バックアップは成功したのにリストアに失敗した。 原因...
View Articleどこでも動くシェルスクリプトを書くための ~ POSIXモードの基礎知識(前編)
はじめに みなさん知っての通りシェルスクリプトは環境依存が激しく、どこでも動くシェルスクリプトを書くのはとても大変な作業です。一番の理由は標準的なコマンド(POSIX コマンド含む)に完全な互換性がなく、どこでも共通で使える機能が少ないからですが、もう一つの理由は全く同じ動作をするシェルが一つもないからです。しかしながら一部のシェルで実装されている POSIX...
View Articleどこでも動くシェルスクリプトを書くための ~ POSIXモードの基礎知識(後編)
はじめに 一部のシェルには POSIX モードというシェルの動作を POSIX 準拠にして異なるシェル間の互換性問題を軽減する機能が搭載されています。この記事では POSIX モードの各シェルの実装とその方針の違いについて解説します。 この記事は「どこでも動くシェルスクリプトを書くための ~ POSIXモードの基礎知識(前編)」の後編です。 POSIX モードの解説については前編を参照してください。...
View ArticleWindows10のbashを使ってLinuxサーバへssh
WindowsPCからLinuxサーバにsshで接続しました。 Macからであればこれまでログインしていましたが、今回初めてWindowsから試行しました。 コマンドプロンプトからbashを起動して、ログインはできるのですが、下記のメッセージが表示されます。 -bash: warning: setlocale: LC_CTYPE: cannot change locale (C.UTF-8): No...
View Article【EC2の再起動時にスクリプトを毎回実行するにはMIME-MULTIPART形式でかけばいい。】
今回はEC2を毎回起動するたびに実行しなければいけないコマンドを自動で実行してくれるようにしていきます。 やり方としては、「AmazonLinuxのUserDataにシェルスクリプトかcloud-configで書き込んでいく」らしいです。そもそもUserDataとは、「Linux インスタンスの起動時に実行するコマンド」を指定できる項目のこと」です。(以下参照)...
View Articlebrewコマンドが見つかりませんcommand not foundとなるときの解決策
背景 MacOSのターミナルにて、「brew ○○」というコマンドを実行したときに、「command not found」エラーになったときの解決方法のメモ。 解決策 ターミナルにて以下のコマンドを実行して、brewをインストールすればOK。 インストールの途中で「継続しますか?」と聞かれるのでYesを選択する。 /bin/bash -c "$(curl -fsSL...
View ArticleGit Bash で日本語が文字化けする。
Git Bashで日本語が文字化けする 出力したい結果 $ java Main breakfast アサゴハン あさごはん 朝食 文字化けした結果 $ java Main breakfast ▒A▒T▒S▒n▒▒ ▒▒▒▒▒▒▒͂▒ ▒▒▒H 私が解決した方法 1:GitBashを開き、右クリック 2:一番下の Options...を選択 3:Textから Locale [ja_JP]...
View ArticleJupyterにPython以外のカーネルを導入する
この記事の前提条件 誰でも無料で利用できる、カスタマイズ可能なJupyterであれば、自分が推している言語でカーネルを導入しない手は無いと思い、色々チャレンジしてみました。 ここでは以前投稿した下記の環境で話を進めていきます。 すでに利用可能な処理系のカーネルを導入 まずは、言語本体はすでに利用可能な状態で、カーネルさえインストールすればよいパターンから着手してみたいと思います。...
View Articlexargs + zipコマンドでディレクトリごとにzip化する
以下のようなディレクトリがあるとき、photo/2021_01 ディレクトリを zip 化した photo/2021_01.zip を作りたい。 photo ├─ 2021_01 ├─ photo1.png ├─ photo2.png ├─ ... ├─ 2021_02 ├─ 2021_03 ├─ ... コマンド # photo のディレクトリで実行するとき cd photo; ls | sed...
View Articlebash test -n が常に true を返す場合の対処
小ネタです。 test -n は文字列の長さが0 より 大きい場合にtrueを返します。 よって以下のコードは ZERO length を返すことが期待されます。 NO_STR= if [ -n $NO_STR ] then echo "NON ZERO length" return fi echo "ZERO length" が結果としては、NON ZERO length が出力されます。 なぜ?...
View ArticleMacでシェルをbashやzshに切り替える方法
Mac OS Catalinaからデフォルトのシェルがbashからzshに変わりました。 「zshに変更したい」「bashに戻したい」などシェルを切り替えたい時があると思います。 本稿では、Macでシェルを切り替える方法を紹介します。 1.現在使用中のシェルの確認 % echo $SHELL /bin/zsh 2.使用可能なシェル一覧の確認 % cat /etc/shells # List of...
View ArticlebashのコマンドプロンプトにCPUの温度を表示させてみる。
きっかけ もう2021年の年末の話だけど、前回のラズパイのケースを自作してみた。で熱対策を全く考えてなかったのでちょっと心配。 実際、訓練中にラズパイがうんともすんとも言わなくなって、熱暴走を疑うことも。 どうする 別売りでファンが売ってるし温度設定すればで自動的に回るし。。。。ポチッとで解決?...
View Article