[bash]ディレクトリが存在しない場合は作成。存在かつ空でない場合は警告を出力して終了する構文
よくあるシュチュエーションだと思いますが必要な判定処理・構文が端的にまとまっている記事が見つけられなかったので記載しておきます。なお、背景として、ディレクトリが存在する場合/空でない場合にスクリプトで自動削除(rm -rf...
View ArticleBashの${@}と${*}の違いについて
ShellCheckとはシェルスクリプトの構文をチェックしてくれるソフトです。「動くけどやめたほうがいい」というコードも教えてくれるので非常に便利です。SC2145以下のコードでエラーが出ました。(実際の関数じゃないけど同じようなやつ)say (){echo${@}}どうやらこちらのサイトによると${@}ではなく${*}を使うべきらしいです。...
View Article今日の月齢を絵文字で表示するシェルスクリプト
Unicode絵文字が表示可能なフォントが設定されたターミナル上で実行すると、本日のおおよその月齢を計算して対応する絵文字を出力するシェルスクリプトです。moonage.sh#!/bin/bashyear=`date +%Y`month=`date +%m`date=`date +%d`#簡易月齢計算法第1表array=(0 2 0 2 2 4 5 6 7 8 9...
View Article「fish shell」を導入したら、システム開発の作業効率が改善したよ❗
私は、Mac 環境で「fish」と呼ばれるシェルを使用してシステム開発をしています。fish は、スマートでユーザーフレンドリーなコマンドラインシェルです。fish他にも、旧 Mac 標準の「bash」や macOS Catalina からデフォルトシェルになった「zsh」もあります。たまに案件によって使用禁止というところもありますので、3つのシェルを使えるようにカスタマイズしています。zsh を...
View Articlebash の coproc について
Overviewbash 4 から coprocess があるのを知ったので試してみます。ざっくり言うと、メインプロセスと stdin/stdout を繋ぎながら、バックグラウンドでサブプロセスを起動できる機能です。イメージ的には cmd &に近いですが、入出力が繋がってるのがイケてるポイントです。具体的には、...
View Article私的、Macのターミナル(Bash)外観設定
こんにちは。 MacbookPro2016のキーボードがチャタって辛いyagrushです...これはだめかもわからんね...さて、もはや完全に私的メモですが...
View ArticleシェルスクリプトでArchLinuxにインストールされているパッケージを確認する
何をするコード?シェルスクリプトでインストールされているパッケージを確認して、もしパッケージがインストールされていなかったり古かったりしたら警告を出します。コードdependence=("git""wget""make""hoge""archiso""search-in-dir-git")installed_pkg=($(pacman -Q | awk'{print...
View Articlebash で タブ補完するときに大文字小文字を区別しないようにする
echo'set completion-ignore-case On'>> ~/.inputrc あるいはecho"bind 'set completion-ignore-case on'">> ~/.bashrc Raspberry Pi OS 10.4 で検証参考: Can I make Tab auto-completion case-insensitive in Bash?
View Articlebash / .bash_profile / .bashrcについて「とりあえず」部分を理解する
この記事の目的bash、.bashrc、.bash_profileについて「とりあえず」理解すること。環境構築時に、「.bashrc」と「.bash_profile」というファイルを訳も分からず編集しました。訳もわからないまま突き進むといつかきっとドツボにハマるので、個人的に「ひとまずこれだけ分かれば良いかしら?」という部分をまとめました。まずは、bashとは?shellの種類の一つで、shのパワー...
View ArticleMarkdown環境でパスワードを管理してるので…
はじめにVivalidのメモ機能でパスワードを管理しています。パスワードは大小英数の20桁としていますが、ストック用として10個パスワードを作ります。ここでは10個のパスワードを作るスクリプトを紹介します。注意大半のパスワードはVivalidのメモ機能で管理していますが、「他の環境で重複して管理しているパスワード」「Vivaldiのメモ機能では管理していないパスワード」「頭の中にだけあるパスワード」...
View ArticleMacのコマンドラインで明日を表現する方法
macのdate表現で困ったmacユーザーになってまだ3ヶ月の私にとっては、bashのdateコマンドすら手強い相手でした。今回、目的にあった形で日付の表現をするのに、小一時間以上かかってしまい軽く自分にショックを受けてしまいました。他のmacビギナーにとっても日付の表現で時間を多く無駄にしてしまうことはショッキングなことだと思ったので、ここにナリッジをまとめておきたいと考えました。そもそも:mac...
View ArticleWSLからコマンドラインでエクスプローラを実行する方法
はじめにWSL(Windows Subsystem for Linux)でGit Bashのようにターミナル上からエクスプローラーを起動したいと思い、実行方法を調べてみました。実行環境は以下のとおりです。Windows : Windows 10 ProWSL : Ubuntu 18.04.2 LTSやりたかったことGit...
View Article「BashでFizzBuzz」からShellScriptの基本的な書き方を思い出してみる
はじめにあるとき自分のFacebookにこんな記事が出てきたんですよ。ああ、8年……そんな経ったのですね……ちょうど特許検索エンジンのUI側をjQueryを鬼駆使ししてSPAなどという言葉もなかった頃にSPAみたいなことをやっていた時期だったと思います。んで、その頃に当時の現場のCTO(頭脳も物理的にもつよつよなエンジニア)から腕試し的に書いてみろって言われたんですよ。これくらい書けなきゃMac使わ...
View ArticleVisual Studio CodeでshellをLinuxにする方法(windows)
メモとして記述 VScodeのターミナルをベースのpowershellからbashに変える方法この一番下の歯車マークを押して、設定を開く。検索バーにshellと入力。そうすると上画像のようにTerminal>Integrated>Shell Args:...
View Articleディレクトリ内のファイルを一括リネーム
こんな感じ。sedname.sh#!/bin/bashfile_all=(`ls`)for((i=0; i<${#file_all[*]}; i++)){ file_subd[i]=`echo${file_all[i]}| sed$1`if[${file_subd[i]}];then echo...
View ArticleIBM Cloud の File Storage 使用率を確認するスクリプト
IBM Cloud の File Storage 使用率を確認する簡易なスクリプトを作成して確認してみました前提環境・Local PC(Mac) のターミナルから実行・IBM Cloud のアカウントを保持している・IBM Cloud 上で FileStorage を使用している・実行環境で ibmcloud CLI が使用できるIBM Cloud File Storage...
View Articleubuntuのshとbashで環境変数内の改行記号\nの扱いが違う
ホストからdockerコンテナに環境変数経由でjsonデータを渡し、echoとリダイレクトでファイル化してアプリから読み込もうとした。結果、以下のエラーが発生。Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string...
View ArticleSpofity視聴中の曲をSlackステータスに投稿 (macOS専用)
Step 1: OAuthこれの「準備2」まで行う(Slackワークスペースにアプリのインストールを行う必要がある)https://qiita.com/keiya/items/b72f89e3a8a75121c02eStep 2: こちらのコードを持ってきて動かすAPIKEYに Step 1...
View ArticleDocker。自分がよく使うコマンドをaliasに設定「説明付き」
はじめに私が思うよく使うDockerコマンドは、bash_profileや、bash_rcでaliasに設定して使っています。自分の誹謗録ようなものですが、興味のある方はお試しください。そして、もし有用なaliasを使っているならぜひ共有頂けると嬉しいです。自分も勉強目的で書いているので、間違った情報があるかもしれません。そこはご指摘頂けるとありがたいです。alias設定内容~/.bash_prof...
View Articlecygwinのcronで実行されないスクリプト
タイトルの現象について一応は解決しました。解決したのですが、うまく行かなかった原因も、うまく行った理由もよく分かっていません。確認したことを簡単にまとめておきます。スクリプトの内容テキストデータを処理するスクリプト中間ファイル、実行の様子を確認できるログファイルを書き出す動かない状況他のスクリプト(同じものを3個登録)の実行実績がある環境コマンドラインから「./script.sh」だと動くコマンドラ...
View Article