#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