問題タブ [tcsh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - 変数の非表示のルート プレフィックスを使用した Tcsh および/または bash ディレクトリの補完
少しひねりを加えて、tcshおよび/またはbash(両方とも私のサイトで使用されています)でディレクトリ補完を設定しようとしています。特定のコマンド「foo」について、補完にカスタム関数を使用して一致させたいと思います/ で区切られた最初の用語を実際のサブツリー ノードに追加し、その後、後続の用語については通常のディレクトリ補完に従います。これは、cdpath と補完の組み合わせのようなものです。または、補完スクリプトによって開始点が制御されるディレクトリ補完の形式だと思います。次のように動作します。
私たちは大規模な製品開発ツリー (これは CGI 生産施設です) を持っており、シェルに精通したユーザーが常にナビゲートしたり飛び回ったりしているため、これを行いたいと考えています。不満は、ツリーの上位レベルが扱いにくく冗長であることです。可能な「頭」の選択肢を見つけ、そこからディレクトリ補完を行うために、最初の用語をすばやく検索する必要があります。プログラマブル補完がこれを行う方法を提供できるように思えますが、それはかなりとらえどころのないものであることが判明しています.
これを行うために、カスタムの bash と tcsh の補完を何度か試みましたが、最も近いものは、ユーザーがディレクトリ レベルをスペースを含む個別の単語として扱わなければならない「単語補完」の形式です (例: foo scene/ shot /要素/ワークスペース/ ...)。現在のスクリプトをハッキングし続けることもできますが、何か理解できないことがあるのだろうかと思っていました.これはプログラム補完の最初の試みであり、ドキュメントと例はシェルブックとインターネットでかなり薄いです. . 私を正しい軌道に乗せることができる補完の達人がそこにいるなら、私はそれを感謝します.
FWIW:これが私がこれまでに得たものです(最初にtcshで、次にbashで)。静的ルート「/root/sub1/sub2/sub3」は、さまざまなレベルでさまざまな一致を見つける検索機能の単なるプレースホルダーであることに注意してください。それを機能させることができれば、後で検索機能をサブスクライブできます。繰り返しますが、どちらの例も単語補完を行います。これには、一致する各用語の後にユーザーがスペースを入力する必要があります (実際のパスを構築するために、関数内のスペースも削除する必要があります!)
TCSH の例 (関数は実際には bash スクリプトであることに注意してください):
BASH の例:
bash - ksh{list;のようなコマンドのcshリスト }
ボーン互換シェルでは、{ list; }
構文により、新しいシェルを開かずに、コマンドの完全なリストが実行前にシェルによって読み取られます。cshに似たものはありますか?
ありがとう。
shell - csh シェルのコマンド プロンプトで for ループを使用する方法 - まともなワンライナーを探す
bashシェルから来て、ループの簡単なローリングを見逃しました(for i in(...); do ... done;)
ループの典型的なワンライナーを cshell に投稿していただけますか?
ワンライナーでお願いします。複数行ではありません thx
vim - シェル スクリプトからエディタを起動するにはどうすればよいですか?
tcsh スクリプトでエディター (vi、emacs など) を起動したい:
これにより、vi が my_file で起動されますが、最初に「Vim: 警告: 出力が端末ではありません」という警告が表示され、キーストロークが画面に表示されません。vi を強制終了した後、ターミナル ウィンドウがめちゃくちゃになり (改行がない)、「リセット」が必要になります。「emacs -nw」、「xemacs -nw」、および pico を試してみましたが、同様の結果が得られました。「xemacs」は機能しますが、別のウィンドウが起動します。同じ端末ウィンドウを再利用したい。
スクリプトからエディタを起動して、同じターミナル ウィンドウを再利用する方法はありますか?
unix - 前の2番目のコマンド実行
Unixでは、!!
は前のコマンドのエイリアスです。
2番目に前のコマンドのエイリアスは何ですか?
shell - tcshシェルにDeleteキーとEndキーをマッピングする方法は?
私はtcshを使用していますが、cmd行でDelete / Endを押すと、単に~
;と表示されます。<Ctrl><e>
行末に移動するにはを押す必要があります。名前が示すように、誰かが削除/終了キーを使用できるようにするのを手伝ってもらえますか?
scripting - tcsh の履歴を時系列で単一のファイルに定期的にバックアップする方法は?
私は仕事で tcsh を使用しています。私がよく使用する機能の 1 つは、シェル プロンプトでのコマンドライン履歴の補完です。現在、履歴ファイルのサイズを 2000 に制限しています (シェルをあまり遅くしたくないため)。ただし、1、2 か月前に使用したことがわかっているコマンドが必要な場合もありますが、今では消去されています。だから私はシステムが欲しい:
私の履歴バッファには 2000 行しか保存されません
古いコマンドが消去される代わりに、それらは「マスター」履歴ファイルに保存され、時系列順に並べられる必要があります。つまり、2 つのシェルが開かれた場合、履歴に入力されたコマンドは、日付スタンプに従って並べ替えられる必要があります (シェルが開かれた順序ではありません)。閉鎖されました)!
このマスター履歴ファイルを、たとえば 1 週間ごとに自動バックアップできれば完璧です。
熱心なシェル ユーザーの多くは、このような状況に直面していると思います。そのようなユーザーの 1 人から回答を得たいと思っています !!
find - tcshの単一のコマンドエイリアスでvimを使用してファイルを検索して開く
次のように機能するエイリアスを作成したいと思い
vf hello.c
ます。find コマンドを実行して hello.c を検索し、vim エディターで開きます。
それを行う最良の方法は何ですか?私は次のことを試しました(動作しません):
alias vf "find -name $* -exec vi {} \;"
alias vf "vi `find -name $*`"
誰でも助けることができますか?
tcsh - 単純なCShellプログラムで奇妙なことが起こります
やあ、やあ、私にはこの奇妙なバグがあり、それを修正する方法がわからないので、助けていただければ幸いです。
基本的に、プログラムが行うことは、たとえば2つの引数を受け取り、Sep-22-07 11:45am
それをこの形式で返すことですyyyymmddhhmm
-200709071145
たとえば、最初に2つのゼロを含む2番目のパラメーターを送信すると、奇妙なことが起こります。たとえば、00:01amのようになります。次に、設定された月、設定された日、設定された年全体が異常になり始め、その出力を返します。
+他の出力。
プログラムには他のエコーがありますが、私はそれらをデバッグに使用しました。
とにかく、よろしくお願いします。私はCShellの初心者なので、簡単なバグの場合は申し訳ありませんが、見つからないようです。
bash - vi を使用して、ディレクトリで最後に変更されたファイルを開く
おそらくエイリアスの形式で、ディレクトリ内の最後に変更されたファイルを開く簡単な方法が必要です。
現在、ls -ltr を実行しています。次に、ファイル名をコピーして貼り付けます
tcshを使用していると仮定します