USD(米ドル)からJPY(日本円)に変換するシェル

なんで作ったん

mwm-store.com/product/phase-essential
を欲しいなーと思ったがドルが安いときに書いたいなーと思い立った

良きAPIを見つけた方がいたので。
無料で使える為替取得APIメモ – Qiita

ソース

github.com/tknr/price_usd_to_jpy

使い方

bash price_usd_to_jpy.sh USD(ドル) [メールで欲しい場合は宛先アドレス]

使用例

知りたいだけでメールはいらん人向け

$bash price_usd_to_jpy.sh 100
10570 yen
$

メールで送って欲しい人向け

$bash price_usd_to_jpy.sh 100 [email protected]

てやると、[email protected] 宛に以下のようなメールが届く

to : [email protected]
subject : [price report] 100 USD is 10570 yen . 
body:
100 USD is 10570 yen . 

のでcrontabに以下のように書いてやればいいんです

0 6 * * * /bin/nice -n 19 /bin/bash /home/example/price_usd_to_jpy.sh 100 [email protected]

閲覧しているページをツイートするブックマークレット

Bookmarklet を 2 つ紹介(動画再生速度の変更、ツイート) – Qiita qiita.com/irisTa56/items/c47cb1bc1ea74126dc0e#bookmarklet-%E3%81%A7%E3%82%A6%E3%82%A7%E3%83%96%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%9F-tweet-%E3%81%99%E3%82%8B

の閲覧しているページをツイートするブックマークレットが
2020/05/30時点ではwindows10のchromeから稼働しないので試してみたら

/intent/tweet?text=

のパスがtwitter側で無効になったっぽい。
ios用のブックマークレットとして紹介されていた

/compose/tweet?text={text}&url={url}

だとpcでも稼働することを確認したので以下になります。

javascript:window.open("https://twitter.com/compose/tweet?text="+encodeURIComponent(document.title)+"&url= "+encodeURIComponent(location.href))

atomic repoのインストール(2019/07/26)

従来の

curl -s https://www.atomicorp.com/installers/atomic | sh

だと

sh: 行 1: html: そのようなファイルやディレクトリはありません
sh: 行 2: 予期しないトークン `<' 周辺に構文エラーがあります
sh: 行 2: `<head><title>301 Moved Permanently</title></head>

とかいわれるのでブラウザでURLを直叩きすると
updates.atomicorp.com/installers/atomic
に飛んでいたので

curl -s https://updates.atomicorp.com/installers/atomic | sh

で成功。

bash shell に関するtips 備忘録

実行時にデバッグ出力する場合のヘッダ

#!/bin/bash -x

root以外が実行すると処理せずに終了させる

if [ $(whoami) != "root" ]; then
        echo "This script must be run as root"
        exit 1
fi

スペースの入ったファイル名を処理するために配列の分割子を改行コードに固定する

export IFS=$'n'

ので、上記設定以降はshell内での配列指定は以下の例のように記述する必要がある

EXTLIST=(
"mov"
"mkv"
"..avi"
"avi.mp4"
"wmv.mp4"
"flv.mp4"
"mpeg"
"mpg"
"flv"
"rmvb"
"wmv"
"M4A"
"avi"
"ts")

rootから全てのユーザのjavaに対してgc実行リクエストする

for line in `ps aux | grep java | tr -s " " | grep -v grep | tr " " "," | cut -d ',' -f 1-2`
do
        arr=( `echo $line | tr -s ',' ' '`)
        user=${arr[0]}
        pid=${arr[1]}
        sudo -u $user jmap -histo:live $pid
done

lockファイルを作らずに、shellの複数起動をしないようにする

参考 : qiita.com/hit/items/e95298f689a1ee70ae4a

_pcnt=`pgrep -fo ${CMDNAME} | wc -l`               
if [ ${_pcnt} -gt 1 ]; then                        
        echo "This script has been running now. proc : ${_pcnt}"
        exit 1                                           
fi