- ベストアンサー
シェルスクリプトで特定のフォルダに移動する方法
ahoo_chieokureの回答
- ahoo_chieokure
- ベストアンサー率52% (34/65)
題意に沿った答えはNo1のとおりだと思いますが… ・フォルダが1つだけある場合というのはフォルダ以外に隠しファイルでないファイルは無いのでしょうか。*.coreとか(´・ω・`) ・なぜそのような事をしたいのでしょうか?ということを考えると「選択リスト的なものを表示させて」はシェルの補完機能を使って入力するようにしたらどうですか。 即ち、選択はスクリプトの外で行うようにしたらどうでしょうか。 ↓ % foo.sh {ターゲットのディレクトリ(フォルダ)} というようにディレクトリを引数で取るようにする。 ターゲットのディレクトリはシェルの補完機能で入力する → foo.sh ~/[TABキーを押す] みたいなかんじで補完候補が出てきます。 候補の中の先頭の文字を入力してまたTABを押すと候補が絞り込まれていきます。
関連するQ&A
- シェルスクリプト勉強をしています。
シェルスクリプト勉強をしています。 シェルスクリプトの条件で指定のディレクトリがAAAというディレクトリが1つしかない場合はスクリプト1を実行し終了させる。 AAAAというディレクトリも含めて複数ある場合(BBBというディレクトリのみでも同様)は別のスクリプト2を実行させる。 例として /home/hoge配下にTargetというディレクトリのみの場合は、スクリプトXを実行した後に終了させる。 Targetディクトリや他のディレクトリもある場合はスクリプトYを実行する。 Targetディレクトリ以外のディレクトリのみだけの場合もスクリプトYを実行する。 Targetディレクトリのみの場合というスクリプトの書き方がわからず… どなたか教えていただけると助かります。 よろしくお願いします
- ベストアンサー
- Linux系OS
- シェルスクリプトの書き方
お忙しい所失礼します。 以下の内容のようなことを行うにはどうすればいいでしょうか? (例) /home/testフォルダ直下に以下の3つのフォルダがあります。 ・sampleフォルダ ・sample1111フォルダ ・sample2222フォルダ このファイルをそれぞれ別のディレクトリに移動させます。 ・sampleフォルダ→/usr/testフォルダに移動 ・sample1111フォルダ→/usr/test1111フォルダに移動 ・sample2222フォルダ→/usr/test2222フォルダに移動 これが通常なのですが、sample1111と2222が無いときはコピーを実行しないスクリプトを書きたいのですがどう書けばいいのでしょうか? 手動でやる分には楽なんですけど、100個位フォルダがあり…日によって50の時もあれば100の時もあって…自動化したいのです… もし参考になるサイトなどあれば教えてください。 よろしくお願い致します。
- ベストアンサー
- Linux系OS
- ディレクトリ監視シェルスクリプト
お世話になっております。 現在、特定のディレクトリを監視するという仕事をしております。 そこで、監視を人ではなく、シェル(ツール)化しようと考えております。そこでご相談があります。 以下の手順ができるようなシェルを作成しようと考えております。 ---------------------------------------------------------------- 例) /home配下にディレクトリまたはファイルが追加された場合。 以下の対話処理が走り、yを押すとhoge-serverのサービスが 再起動され、n(y以外)を押すと何もしない。 ↓ echo"/home配下にhogeディレクトリが作成されました。" echo"サービスを再起動しますか?(y/n)" read lm if [ $lm -eq y ]; then /sbin/service hoge-service restart ---------------------------------------------------------------- 肝心の/home配下の監視という部分がよくわかりませんでした。 どなたかわかる方がいたら教えて下さい。 宜しくお願いします。
- 締切済み
- Linux系OS
- シェルスクリプトのバックアップ世代管理について
シェルスクリプトで質問です。まだ勉強しはじめなのですが、条件がついた時のファイル削除がわかりません。 どなたか教えていただけると助かります。 やりたいことは以下です。 /home/hogeフォルダ内に以下のファイルがあります。 sample20150101 sample20150102 sample20150103 otherXX otherYY otherYYYYMMDD 他にも多数 この中からsampleファイルでファイル名の後ろについている日付が古いものを削除したいです。 ただし、更新日がファイル名の末尾にある日付とは限りません。 またsampleYYYYMMDDは末尾の日付が直近の3ファイル(3日分)は残したいです。 他のファイルには影響ないようにしたいとも考えてます。 ネットで調べて更新日で世代管理はなんとか出来たのですが、ファイル名で判定するやり方がわからず… こういった場合、どのようにスクリプトを書けばいいのでしょうか? まだ勉強しはじめたばかりなので知識がなくて申し訳ないのですが、教えていただけると助かります。 よろしくお願いします。
- 締切済み
- Linux系OS
- シェルスクリプトについて
シェルスクリプトを勉強しています。 hoge.txt内で"AAA"という文字列を"BBB"という文字列を検索し下記のような処理を行いたいです。 (1)AAA・BBBともにある場合 →スクリプトを続行 (2)AAA・BBBともにない場合 →スクリプトを停止 (3)AAAしかない場合 →BBBがありませんというメッセージを流す (4)BBBしかない場合 →AAAなしでスクリプトを続行しますというメッセージを流す シンプルなやり方でいいので上記のようなことを行いたい場合、どのようにスクリプトを書けばいいのか教えてください。 よろしくお願いします。
- ベストアンサー
- Linux系OS
- シェルスクリプトの切り替え?
シェルには種類がありユーザーはそれを切り替えることによって好みのシェルを自由に選択することが出来る。 というのはわかりました。 が、シェルスクリプトを記述して実行する場合はどうなんでしょう。 bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。 実行者とスクリプト記述者が同じシェル環境で操作しないといけないのかと思い質問しています。 ひょっとして意味のわからない質問かも知れませんがお願いします。
- ベストアンサー
- Linux系OS
- あるシェルスクリプト内にある関数を、別のシェルスクリプトから呼ぶ事はできる?
件名の内容を具体的に申し上げると下の通りです。 あるシェルスクリプトから、その同一シェルスクリプト内にある関数を呼ぶ方法は既知です。が、他のシェルスクリプトにある関数を呼ぶ方法を知りません。方法が在る場合、簡単な文法をお教え頂けると幸いです。 以上どうぞ宜しくお願い致します。
- ベストアンサー
- Linux系OS
- シェルスクリプト コマンドを変数にした時の呼び方
はじめまして、シェルスクリプトを勉強中の者です。 コマンドを変数にいれて、まとめました。 しかしコマンドの変数を呼びこもうとするとエラーになります。 ============================================ #!/bin/sh GREP="grep" cat "${GREP} '^[0-9]' /home/hoge/test.nicdf" ============================================ ================ シェル実行結果 ============= $ ./test.sh cat: grep '^[0-9]' /home/hoge/test.nicdf: そのようなファイルやディレクトリはありません どう書けば、エラーにならずに正常に動作するでしょうか? ご教授の程よろしくお願いします。
- ベストアンサー
- Linux系OS
- PHP シェルスクリプト 引数
失礼します。現在PHPからシェルスクリプトを引数を付けて実行し、戻り値で確認が出来るか試しているのですがなかなか参考になる記事がなく実現が出来ない状態です 調べたところ、 phpからhoge.shというシェルファイルをargという引数で実行したいとします。 引数を"'. .'"で囲う事で、引数を渡せるようです。 $output = shell_exec('/bin/sh /path/to/hoge.sh "'.$arg.'"') var_dump($output) 上記のような記事を見つけたのですがhoge.shはどのように$argを受け取り、戻り値を渡しているのでしょうか?また、$argの値の中身は渡す引数の内容という認識で正しいのでしょうか?サンプルコードなどがあるとうれしいです。 ご教授よろしくお願い致します。
- ベストアンサー
- Linux系OS
- bashのシェルスクリプトの書き方
macos x 10.5.5です。 あるコマンドを実行すると"y/n"を聞いてきます。コマンドラインから実行した場合は、単純にキーボードから"y"などと入力すれば済むわけですが、これをbashのシェルスクリプトでやる場合はどう書けば良いのでしょうか。尚、"y/n"に対する応答(キー入力)は常に"y"で構いません。 >hoge delete file1 -- hogeというコマンドを実行 >Are you sure ? ( enter y/n ) -- hogeが確認を要求 >y -- キーボードからyを入力 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
言葉足らずでしたが、隠しフォルダなどはないです。 確かに補完機能を上手く使えば出来ました。ありがとうございます。