#author("2021-07-18T22:27:17+00:00","default:hotate","hotate")
#author("2022-02-12T07:26:43+00:00","default:hotate","hotate")
#contents
&tag(シェル,macOS);

* 環境変数 [#dfc04a48]
- [[ALL about Linux: bash でシェル変数が定義されているかを判定する方法は?>http://luna2-linux.blogspot.jp/2014/05/bash.html]]
 if [ -z "${VAR+x}" ] ; then    # VARが定義済み(nullを含む)の場合 x が返るので、-z でテストすれば OK
    ... # VARが未定義の場合に行う処理を記述
 fi
- [[Bashの便利な構文だがよく忘れてしまうものの備忘録 - Qiita>https://qiita.com/Ping/items/57fd75465dfada76e633]]
 いちいちGoogle先生に確認するのもめんどうなので、このページに整理した。

* [[コマンド]] [#nece1282]
- [[なるべく覚えないbashのキー操作 - ザリガニが見ていた...。>http://d.hatena.ne.jp/zariganitosh/20140523/minimum_bash_keybind]]
 control--(controlとマイナス)	操作を1つ戻す(undo)
- [[検索ではあんまり出ないbashの便利技 - Qiita>http://qiita.com/rsooo/items/ef1d036bcc7282a66d7d]]
 シェルの起動時に -n オプションを与えてやれば、シェルを実行せずに文法チェックを行うことができる
- [[[小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) | Developers.IO>http://dev.classmethod.jp/etc/make-and-cd-patterns/]]
 BASHの $_ という特殊変数を使うことで、「ひとつ前に実行したコマンドラインの最後の引数」を参照することができます。これを cd の引数に渡してあげればよいわけです。
- [[ターミナルの作業が捗るかもな小技5つ>https://qiita.com/simeji/items/cae94349a2ae02d3204d]]
 1つ前にディレクトリに戻る
 cd - 
- [[変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス>https://shellscript.sunone.me/variable.html#%E5%A4%89%E6%95%B0%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B]]
 ただし、C言語とは違い = の前後にスペースがあってはいけない。 
- [[bashで大文字/小文字の変換 - Qiita>https://qiita.com/myy/items/782deb8347ac58f0d6a1]]
 文字列を全て小文字(or大文字)にさくっと変換したい時は,trコマンドを使うとよさそう。
 $ echo KOTATSU | tr '[:upper:]' '[:lower:]'

* [[ログ]] [#za2e0089]
- [[標準出力と標準エラー出力にリダイレクトしながら出力をターミナルに表示 (bash, tee, process substitution) - いろいろ備忘録日記>https://devlights.hatenablog.com/entry/2022/02/04/073000]]
 そのようなときは、以下のように bash の プロセス置換 (process substitution) と tee コマンドをあわせ技で使います。
 $ ./script.sh 1> >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)

* 設定 [#jac6c9bd]
- [[.bash_profileと.bashrcのまとめ - Qiita>https://qiita.com/takutoki/items/021b804b9957fe65e093]]
 .bash_profile
 ログイン時に1回、実行される。
 .bashrc
 シェル起動時に1回、実行される。
- 設定例
 # bash
 export LANG=ja_JP.UTF-8
 export LESSCHARSET=utf-8
 alias ll='ls -AlFvG'
 alias ls='ls -lG'
 # Homebrew
 export PATH=/usr/local/bin:$PATH
 # color for ls command
 export LSCOLORS=gxfxcxdxbxegedabagacad
 # Java
 export JAVA_HOME=`/usr/libexec/java_home`
 # default editor
 export EDITOR=/usr/bin/vi
 # bash completion
 set completion-ignore-case on
 set show-all-if-ambiguous on
 # grep option
 export GREP_OPTIONS='--color=auto' 
 # npm modules
 export NODE_PATH=/usr/local/lib/node_modules

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS