タグ付けされた質問 「shell」

シェルは、Unixのコマンドラインインターフェイスです。シェルにインタラクティブにコマンドを入力するか、スクリプトを記述してタスクを自動化できます。/ bin / shおよび最も互換性のあるシェル(ash、bash、ksh、zshなど)に適用される質問には、このタグを使用します。エラーのあるシェルスクリプトについては、ここに投稿する前にhttp://shellcheck.netで確認してください。


6
ブレース拡張はいつ使用しますか?
ブレース拡張が何であるかは理解していますが、それをどのように使用するのが最適かわかりません。 いつ使用しますか? あなたがあなた自身のヒントを持っているなら、私にいくつかの便利で注目すべき例を教えてください。

7
ls -dもファイルをリストするのはなぜですか?
指定するときは、次でls --directory a*始まるディレクトリのみをリストする必要がありますa* ただし、次で始まるファイルとディレクトリをリストします a 質問: どこ私は以外に、この上でいくつかのドキュメントを見つけるかもしれないmanし、info私が思うところ、私は徹底的に見えましたか? これはBASHでのみ動作しますか?
48 bash  shell  ls  wildcards  options 

4
配列から要素を完全に削除するにはどうすればよいですか?
unset array[0]要素を削除しますが、まだecho ${array[0]}私がnull値を取得した場合、これを行う他の方法がありますが、配列の要素に次のようなスペースが含まれている場合 array[0]='james young' array[1]='mary' array[2]='randy orton' しかし、これらも仕事をするのに失敗します array=${array[@]:1} #removed the 1st element 今、私は新しい配列を次のようにしたい array[0]='mary' array[1]='randy orton' スペースは割り当て後に問題を引き起こし、実際の配列は置換のようになります。 array=(mary randy orton)

16
awkコマンドで重複した$ PATHエントリを削除する
PATH環境変数からディレクトリの重複コピーを削除できるようにするbashシェル関数を作成しようとしています。 コマンドを使用して1行のコマンドでこれを実現することは可能であると言われましたがawk、その方法はわかりません。誰もが方法を知っていますか?
48 bash  shell  awk  path 

3
Bash:ダブルイコールvs -eq
私はbashで整数比較を行っています(ユーザーがrootとして実行されているかどうかを確認しようとしています)、それを行う2つの異なる方法を見つけました: 二重に等しい: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi 私は> =または<bashで、唯一-geと-le、なぜそこにある=があることを理解していない==があるかどう-eq? 両側を比較する方法に違いはありますか?
47 bash  shell  arithmetic 

7
`set -x`のようなシェルオプションの値を復元する方法は?
私がしたいset -x盲目的に設定するのではその後の代わりに、それは(私はそれを設定する前の状態に戻って)私のスクリプトの先頭と「元に戻す」で+x。これは可能ですか? PS:私はすでにここでチェックしました ; 私の知る限り、それは私の質問に答えているようには見えませんでした。
47 bash  shell 

8
プロセスが終了したときに通知メールを送信できるプログラムはありますか?
私は計算科学者であり、Linuxで多くの長い計算を実行しています。具体的には、GROMACSパッケージを使用して分子動力学(MD)シミュレーションを実行します。 これらのシミュレーションには、数日間または数週間かかり、たとえば8〜24コアで実行されます。クラスターの複数のノードにアクセスできます。つまり、いつでも約4つまたは5つのジョブを実行しています(それぞれ異なるノードで、それぞれ8〜24コアで)。 問題は、シミュレーションに時間がかかることです。すべてのノードを24時間シミュレーションで動作させたいのですが、新しいシミュレーションを開始するには、ターミナルでログインして手動で作業する必要があります。しかし、シミュレーションにどれだけの時間が残っているかを常に忘れているので、常にそれらを常にチェックしています。 Linuxプロセスが終了したときに電子メールを受信する方法はありますか?これを行うLinuxプログラムはありますか?そうすれば、いつ端末にログインして次のシミュレーションを準備するかがわかります。 Ubuntu Linuxを使用しています。御時間ありがとうございます。
46 shell  process  email 

2
ターミネーター(ターミナルエミュレーター)でCTRL-Dウィンドウを閉じることを無効にします
多くの場合、複数のSSHセッションを介してログインします。セッションからログアウトするには、ローカルマシンに戻るまでCTRL+ を押しますd。 ただし、一度押すと、端末が終了することがあります。 ブロックする方法がありますCTRL+ d私の端末を閉じてからは? 端末エミュレーターとしてターミネーターを使用しています

2
bash-builtinsの 'set'および 'export'は何をしますか?
私はBashの目的setとexportBashで少しばかり困っています(そして、おそらく他のシェルもおそらく推測します)。 私はそれが環境変数を設定するためだと思いますが、それはVARIABLE=VALUE正しいことでできますか? また、タイピングsetとexportそれ自体で異なる値が表示されます。 それで、彼らの目的は何ですか?
46 bash  shell 

4
バイトをファイルにエコーする
i2cバスを使用して、rasberry Piをディスプレイに接続しようとしています。はじめに、特にバイトをファイルに手動で書き込みたいと思いました。 特定のバイトをファイルにどのように書き込みますか? 私はすでにそれを読んでいて、私の問題はこのようなもので解決されるべきだと考えました echo -n -e \x66\x6f\x6f > byteFileForNow ただし、fooではなくnanoでそのファイルを開くと、次のように表示されます。 x66x6fx6f そのため、バックスラッシュはエスケープされましたが、バイト自体はエスケープされませんでした。また、今回は-eなしでのみ同じことを試みたので、\ x66 \ x6f \ x6fを表示することを期待していましたが、以前と同じになりました。 そのため、エコーはバックスラッシュ、バックスラッシュのみ、バックスラッシュをエスケープすることになっています。 これを修正する方法はありますか? 私が探していることを行うべきだったマニュアルページによると。

2
ターミナルアプリケーション(Mac)を再起動せずに、ターミナルからbashを再起動しますか?
私は周りを見て、この質問に対する答えを少し探しましたが、私はそれを見つけていないようです(これは奇妙です)。 私の質問は、macのターミナル内からbashセッションを再開する簡単な方法はありますか。ターミナルアプリケーションを閉じて再起動した場合と同じ動作を望みます(すべての変数がリセットされ、.bash_profileがソースされるなど)。 .bash_profileを入手する方法は知っていますが、それは私が望むものではありません。これをしたい理由の1つは、bashプロンプトのプラグインに、色が複数回ロードされるのを防ぐコードがあるためです。したがって、.bash_profileをソースしても色変数はリロードされず、変更を有効にするためにターミナルアプリケーションを再起動する必要があります。
46 bash  shell 

8
POSIX必須ユーティリティがシェルに組み込まれていないのはなぜですか?
この質問の目的は、特定のコンピューティング問題を解決することではなく、好奇心に答えることです。問題は、なぜPOSIXの必須ユーティリティがシェル実装に組み込まれていないのですか? たとえば、基本的にいくつかの小さなテキストファイルを読み取り、それらが適切にフォーマットされていることを確認するスクリプトがありますが、かなりの量の文字列操作のために、マシンで実行するのに27秒かかります。この文字列操作は、さまざまなユーティリティを呼び出すことで数千の新しいプロセスを作成するため、速度が低下します。私はユーティリティのいくつかは、すなわち、中に建設された場合のことをかなり確信していますgrep、sed、cut、tr、およびexpr、スクリプトが第二に実行します以下(Cでの私の経験に基づきます)。 これらのユーティリティをビルドすると、シェルスクリプトのソリューションのパフォーマンスが許容範囲内であるかどうかが異なる場合が多いようです。 明らかに、これらのユーティリティをビルトインしないことを選択した理由があります。システムレベルで1つのバージョンのユーティリティを使用すると、そのユーティリティの複数の異なるバージョンがさまざまなシェルで使用されることがなくなります。私は本当に多くの新しいプロセスを作成するオーバーヘッドを維持するために他の多くの理由を考えることはできません。準拠しています。少なくとも非常に多くのプロセスを持つことの非効率性ほど大きな問題ではありません。


9
サブディレクトリではなく親ディレクトリで検索を見つける
私はファイルツリーの奥深くにネストされており、どの親ディレクトリにファイルが含まれているかを知りたいのですが。 たとえば、ネストされたGitリポジトリのセットにいて、現在のファイルを制御する.gitディレクトリを見つけたいと思っています。find -searchup -iname ".git"のようなものを期待しています
45 shell  find 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.