[書評] シェル・ワンライナー160本ノックの1章を読んでわからないことをまとめる
の続編
シェル芸人を目指してるマスタカです。
2.1 変数と制御構文,コマンドの入出力操作を把握する
を読んだので不明点をまとめる
・2>&1
標準出力と標準エラーを混ぜてリダイレクトする
https://qiita.com/TomohiroSaito/items/1393ce5a01b75adcbf30
標準出力をパイプで繋ぐ
aaa 2> a.txt
aaa 2>&1 | wc -l
aaa |& wc -l
・文字列の一部切り出し
>Bashの変数は、 ${STR:offset:length} の形式で参照することで文字列の一部を切り出すことができます。
https://genzouw.com/entry/2020/01/18/113034/1894/
・文字列の置換
${変数名/パターン/置換}
https://www.pmi-sfbac.org/string-replacement/
・bashで計算
a=6 b=2 echo $((a+b))
・bashとawkの文字列の区別
Bashの$1とAWKの$1を区別するためにAWKは”で囲う
・連想配列
declare -A b b["SHELL"]="$SHELL" echo $b /bin/zsh b["LANG"]="$LANG" echo $b ja_JP.UTF-8 /bin/zsh echo $b["SHELL"] /bin/zsh echo $#b 2 echo $b[@] ja_JP.UTF-8 /bin/zsh echo $b[*] ja_JP.UTF-8 /bin/zsh echo $#b[*] 2
・シェルのif文
1 |
if [[ `expr $a % 2` == 0 ]]; then echo 偶数; elif [[ `expr $a % 2` == 1 ]]; then echo 奇数; else echo その他;fi |
・factor
素因数分解してくれる
brew install coreutils
でmacでも使えるようになる
https://takuya-1st.hatenablog.jp/entry/2017/05/09/073000
・変数が空だったら代入する
:-
https://qiita.com/hasegit/items/d9392b6dbfea89bc329f
・$?
直前の終了コードの取得
https://teratail.com/questions/95660
・zsh: no matches found: [a-z]
シングルクォートで囲う
cat a.txt | tr ‘[a-z]’ ‘[A-Z]’
https://stackoverflow.com/questions/62266314/zsh-no-matches-found-space
・区切り文字
IFS=-
これした後にreadすると良い感じになる
echo pen-pineapple-apple-pen | while read a b c d; do echo $a $b $c $d; done pen pineapple apple pen
関連記事:
- シェル・ワンライナー160本ノックの2.2〜2.5章の不明点をまとめる
- [書評]Vue.jsのツボとコツがゼッタイにわかる本を読んでわかった
- 現場で使える Flutter開発入門の3-3までの不明点を調べた