0
0

はじめに

bashのシェルオプションを設定する「shopt」コマンドがあることを知り、作業を効率化できそうなオプションについて調べてみました。bashを使用されている方の参考になれば幸いです。

開発環境
・WSL2/Ubuntu環境

shoptコマンドとは

以下GNU.orgのサイトより引用

This builtin allows you to change additional shell optional behavior.

・shoptコマンドを使用することで、シェルのオプション動作を有効化/無効化、
といった変更(切り替え)が可能とのこと

・shoptコマンドは以下のコマンドを実行することで、シェルのオプション動作の
一覧を表示できます

$ shopt
コマンド結果
autocd          on
assoc_expand_once       off
cdable_vars     off
cdspell         on
checkhash       off
checkjobs       off
・・・(省略)・・・

autocadやcdspellなどが記載されている列がオプション動作、on/offが記載されている列が
有効(on)/無効(off)を示している列です。

shoptコマンドの便利なオプション

cdspell

cdspellオプションが有効化されると、ディレクトリのスペルに小さな誤りがある場合、
cdコマンドの際修正します。対象となる誤りは欠けている文字や余分な文字などです。

・以下コマンドでcdspellを有効化

$ shopt -s cdspell

・以下コマンドでcdspellを無効化

$ shopt -u cdspell

cdspellについて実際に何文字程度タイプミスが修正されるか試してみました。
結果としては、1文字のタイプミスは修正されましたが、2文字以上は修正を確認できませんでした。詳細は以下に記載しました。

~/example$ ls  #ディレクトリ構成表示
ShoptSampleDir1  ShoptSampleDir2

~/example$ cd ShoptSampleDi1 #本来Dir1の所Di1と1文字タイプミス
ShoptSampleDir1
~/example/ShoptSampleDir1$ #ShoptSampleDir1に移動

~/example$ cd ShoptSampleD1 #本来Dir1の所D1と2文字タイプミス
bash: cd: ShoptSampleD1: そのようなファイルやディレクトリはありません
~/example$ #ShoptSampleDir1に移動出来ない

~/example$ cd ShoptampleDir1 #本来Sampleの所ampleと1文字タイプミス
ShoptSampleDir1
~/example/ShoptSampleDir1$ #ShoptSampleDir1に移動

~/example$ cd ShoptmpleDir1 #本来Sampleの所mpleと2文字タイプミス
bash: cd: ShoptmpleDir1: そのようなファイルやディレクトリはありません
~/example$ #ShoptSampleDir1に移動出来ない

dotglob

dotglobオプションが有効化されると、ファイル名展開の結果に'.'から始まるファイル名を含めます。

・以下コマンドでdotglobを有効化

$ shopt -s dotglob

・以下コマンドでdotglobを無効化

$ shopt -u dotglob

ls *コマンドを使用する際にdotglobオプションの有効化・無効化でどのように結果が変わるか試し、'.'から始まるファイル名も含まれることを確認しました。詳細は以下に記載しました。

~/example$ ls * #dotglobを無効化した際のls *
sample.txt  sample1.txt

~/example$ ls * #dotglobを有効化した際のls *
.sampledotglob  .sampledotglob1  sample.txt  sample1.txt

以下サイトではdotglobオプションを使用して、cpコマンドやmvコマンドの実行の際に'.'から始まるファイルも対象に含める方法が記載されており、非常に参考になりました。

参考文献

本記事は以下情報を参考にして執筆しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0