• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプトについて)

シェルスクリプトで特定のフォルダに移動する方法

このQ&Aのポイント
  • シェルスクリプトで特定のフォルダに移動する方法についてご教授ください。
  • 特定のフォルダに移動するためのシェルスクリプトを作成していますが、フォルダが一つの場合と複数の場合でどのように書けば良いか悩んでいます。
  • フォルダ名が不規則であるため、選択リスト的なものを表示させて移動させたいと考えています。アイデアやご教授をいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.3

No1です。 シェルスクリプトの処理中に移動したいと言うことでなく、コマンドラインでcdコマンドの代替的に使いたいと言うことであれば、 No1で書いたスクリプトを実行するなら、source コマンド(または、"." コマンド)で実行する必要があります。ファイル名だけで実行すると、ディレクトリ変更はそのスクリプトファイルの中だけで有効です。 $ pwd /home/hoge $ No1のスクリプトファイル名 (sample01を選択) $ pwd /home/hoge →もとのまま $ . No1のスクリプトファイル名 → ピリオド+スペース+ファイル名 (sample01を選択) $ pwd /home/hoge/sample01 →移動した 頻繁に使うなら、 alias mycd="source No1のスクリプトファイル名" と、別名定義を.bashrc等に書いておくといいでしょう

satsusatsu1202
質問者

お礼

ご丁寧に追加でご指摘いただきありがとうございます。 いろいろ試行錯誤してなんとか解決しました。ありがとうございます。

その他の回答 (2)

回答No.2

題意に沿った答えはNo1のとおりだと思いますが… ・フォルダが1つだけある場合というのはフォルダ以外に隠しファイルでないファイルは無いのでしょうか。*.coreとか(´・ω・`) ・なぜそのような事をしたいのでしょうか?ということを考えると「選択リスト的なものを表示させて」はシェルの補完機能を使って入力するようにしたらどうですか。 即ち、選択はスクリプトの外で行うようにしたらどうでしょうか。    ↓   % foo.sh {ターゲットのディレクトリ(フォルダ)} というようにディレクトリを引数で取るようにする。   ターゲットのディレクトリはシェルの補完機能で入力する    → foo.sh ~/[TABキーを押す]   みたいなかんじで補完候補が出てきます。   候補の中の先頭の文字を入力してまたTABを押すと候補が絞り込まれていきます。

satsusatsu1202
質問者

お礼

言葉足らずでしたが、隠しフォルダなどはないです。 確かに補完機能を上手く使えば出来ました。ありがとうございます。

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

hoge直下にはディレクトリしかないという前提で、 cd /home/hoge if test `ls -1|wc -l` = 1 then cd * else select d in * do cd "$d" break done fi 続きの処理~~

satsusatsu1202
質問者

お礼

遅くなりましたが、hoge直下にはディレクトリしかないので、上記のスクリプトでやりたいことが実現できました。ありがとうございます。

関連するQ&A

専門家に質問してみよう