作業ノート

様々なまとめ、雑感など

bash

コマンドの先頭にバックスラッシュをつける理由

RVMをインストールする機会があり、手順を確認してインストールした。 \curl -sSL https://get.rvm.io | bash -s stable このときcurlの先頭に\がついているのが気になり、付けない場合と何が違うのか調べた。 \つける理由は、shellのエイリアスの影響を受け…

bashのヒアドキュメントで、root権限下のディレクトリにスクリプトを作成する

以前、bashのヒアドキュメントを使ったスクリプトの作成で、catを使ったスクリプトの作成方法を紹介した。 [vagrant@localhost ~]$ cat <<'EOT' > test.sh > #!/bin/bash > set -eu > > echo 'test' > > EOT [vagrant@localhost ~]$ ls -l test.sh -rw-rw-r-…

bashのヒアドキュメントを使ったスクリプトの作成

仕事で行った作業を社内のwikiなどにまとめるとき、その作業で実行したコマンドを含めてまとめている。 最近ではスクリプトの作成手順を示す際に、catコマンドを使って $ cat <<EOT > foo.sh #!/bin/bash set -eu ... EOT このように表記している。 これはbashのヒ</eot>…

bashスクリプトでコマンドオプションを解析する

このエントリーの最後でリンクしている各ページの内容を元に、コマンドオプションを解析するサンプルスクリプトを書いた。主に自分用のツールを自作するときに参考にするために書いた。 以下が実行した結果。今のところ、これだけ対応できれば十分。 $ ./get…

対象のパーミッションを調べる

bashスクリプトで、対象が期待したパーミッションであるか確認するときに使った方法。 $ stat -c %a /path/to/target -cオプションは出力内容フォーマット指定で、%aは、パーミッションを8進数で表現する。 スクリプトでは、 perm=`stat -c %a /path/to/targ…

シェルスクリプトの最初の行の「#!」

「シェバング」というみたい。 参考 UNIXの部屋 コマンド検索:シェバング (*BSD/Linux)

スクリプトのあるディレクトリを絶対パスで取得する

#!/bin/bash script_path=$(cd $(dirname $0); pwd) echo $script_path

Ctrl-Qでの端末ロックを無効にする

# bashrcなどに書く $ stty stop undef via Ctrl-Sの端末ロックを無効にする | Mazn.net

bashスクリプトだけで、ファイル名、拡張子を取得する

シェルのパラメータ展開を利用して、basename、ファイル名(拡張子なし)、拡張子を取得する方法。 #!/bin/bash path="/path/to/foo.tar.gz" echo "path: $path" basename=${path##*/} echo "basename: $basename" filename=${basename%.*} echo "filename: …