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

他のBourne / POSIXシェルとは対照的に、GNUのBourne Again SHellに固有の質問。Unixシェル全般に関する質問については、代わりに/ shellタグを使用してください。

7
AWK内でbashシェル関数を使用する
AWK内でbash関数を何らかの形で使用することは可能ですか? サンプルファイル(string、int、int、int) Mike 247808 247809 247810 値を10進数から16進数に変換しようとしています。 .bashrcまたはシェルスクリプトで定義された関数。 awk '{print $1 ; d2h($2)}' file awk:未定義の関数d2h入力レコード番号1、ファイルファイルソース行番号1の呼び出し
24 bash  awk 

5
Ctrl + Cを押したときにシェルスクリプトでバックグラウンドプロセスが終了して終了するのをどのように待ちますか
バックグラウンドプロセスを実行するようにシェルスクリプトを設定しようとしています。シェルスクリプトを実行Ctrlcすると、子プロセスが強制終了されて終了します。 私が思いついた最高のものはこれです。またkill 0 -INT、待機が発生する前にスクリプトを強制終了するため、子が完了する前にシェルスクリプトが終了します。 このシェルスクリプトを送信後に子供が死ぬのを待つ方法についてのアイデアはありますINTか? #!/bin/bash trap 'killall' INT killall() { echo "**** Shutting down... ****" kill 0 -INT wait # Why doesn't this wait?? echo DONE } process1 & process2 & process3 & cat # wait forever

3
STDERRの配管とSTDOUT
" Linux:The Complete Reference 6th Edition "(pg。44)によれば、リダイレクトシンボルを使用してSTDERR のみをパイプできます|&。 これをテストするための非常に単純なスクリプトを作成しました。 #!/bin/bash echo "Normal Text." echo "Error Text." >&2 このスクリプトを次のように実行します。 ./script.sh |& sed 's:^:\t:' おそらく、STDERRに出力された行だけがインデントされます。ただし、実際には次のように機能しません。 Normal Text. Error Text. ここで何が間違っていますか?

3
特定のポートがシェルスクリプトからマシンで開いているかどうかを確認し、それに基づいてアクションを実行する方法は?
C ++アプリケーションサーバーがポート8080で実行されているマシンで以下のシェルスクリプトを実行しています。シェルスクリプトでURLを実行し、そのURLからの応答をDATA変数に格納します。 ただし、同じアプリサーバーがダウンしている場合、URLを実行できずRetrying Again、30秒間印刷してスリープしてから同じURLを再度実行するとします。 #!/bin/bash HOSTNAME=$hostname DATA="" RETRY=15 echo $HOSTNAME while [ $RETRY -gt 0 ] do DATA=$(wget -O - -q -t 1 http://$HOSTNAME:8080/beat) if [ $? -eq 0 ] then break else echo "Retrying Again" >&2 # restart the server let RETRY-=1 sleep 30 fi done echo "Server is …

3
xtermタイトルバーにコマンドを表示
私のBashプロンプトは現在、次のシーケンスを使用してxtermタイトルバーを設定しています。 PS1='\033]0;\u@\h>\w\007' タイトルバーに現在のコマンドを表示する簡単な方法はありますか?たとえばtail -f foo.log、を使用してファイルの末尾を作成している場合、タイトルバーにと言いtail -f foo.logます。


5
[[]]テストで二重引用符を使用する理由
bashスクリプトに2つの整数があるとします。 value1=5 value2=3 次に、テストの場合に二重引用符を使用する必要があるのはなぜですか?例えば: if [[ "$value1" -eq "$value2" ]] なぜ次のものを使用しないのですか? if [[ $value1 -eq $value2 ]] 私にとって、二重引用符は意味をなさない。
23 bash  shell  quoting  variable  test 

2
各反復で非同期コマンドを実行するforループを記述する方法は?
ループ内で非同期コマンドを使用するとエラーが発生するのはなぜですか? $ for i in {1..8}; do sleep 100 & ; done bash: syntax error near unexpected token `;' 私がそれを $ for i in {1..8}; do > sleep 100 & > done これは正常に動作します。 エラーなしで1行に書き込むにはどうすればよいですか?
23 bash 

2
端末の空のスペース/背景を、ASCII文字のランダムな(しかしきれいな)パターンに置き換えることはできますか?
コンテキストと質問 端末とシェル環境を色付けする方法はたくさんあります。などの個別のコマンドの出力lsとはgrep、また、色付けすることができます。直接関連するわけではありませんが、コンソールでメディアを再生するという概念は興味深いものですが、これはウィンドウシステム上のフレームワーク(ライブラリ)に依存しているようです。次の質問は、bashシェルとそのLinuxターミナルフレームワークでの実装とその基盤のみを対象としています。 2D ゲームのシーンのASCII「レンダリング」の次のモンタージュを検討してください。 これらは、ランダムに生成されたシーンではありません。私が選択したすべてのセグメントは、実際には、ASCII文字を使用してこのようなオブジェクトを表現するゲームの「草地」地形(樹木、低木、低木、花、草など)を表します。最後の4シーンは、ユーザーが作成したタイルセットを示しています。タイルセットは、基本的に色仕様のASCII文字のリマップです(詳細は簡単です。これは、視覚とパターン")。 モンタージュ共有のこれらのシーンの一般的な機能は次のとおりです。 最大で5〜6個の異なるASCII文字(カンマ、引用符、その他いくつか) 使用される2-4色 キャラクターのために 場合によってはキャラクターの背景について-最後の例は、パターンを作成するためのキャラクターをほとんどまたはまったく持たないカラーシェードの使用、つまりカラーモザイクの使用を示すためのものです。 現在VMにあるのはArch Linuxで、質問はディストリビューション固有のものではありませんが、ファイルをカスタマイズするためのドキュメントを調べました/etc/bash.bashrc。多くの説明がプロンプトの外観と一般的にすべての前景要素の構成に進むことがわかります。背景の設定に関する情報はほとんどありませんが、通常これらの設定やヒントなどの単色の場合を除きます。 # Background On_Black='\e[40m' # Black On_Red='\e[41m' # Red On_Green='\e[42m' # Green On_Yellow='\e[43m' # Yellow On_Blue='\e[44m' # Blue On_Purple='\e[45m' # Purple On_Cyan='\e[46m' # Cyan On_White='\e[47m' # White コンソールを使用するときに入力しなかった空/空白/背景の「スペース」、つまり「何でできているのか」を概念的に把握していません。いわば。特に、プロンプトに表示されず、エコーされるコマンドをラップするもの。アクティブな行で発生することに関してbash、「行指向」の方法で動作し、一部の操作がアクティブな行のクリアをトリガーすることを示すことができfor i in $(seq 1 $(expr $(tput lines) \* $(tput cols))); do …
23 bash  terminal  colors  tty 


1
grepへの検索用語(ファイル名ではない)のパイピング
ファイルから特定の番号を含む特定の行を取り出したい。検索したいファイルはと呼ばれos_clusters/piRNA_clusters.bedます。 awk '{if (a[$0]++ == 0) {split($0,b,"."); ;split(b[1],c,"r"); print c[3]}};' test_non_enriched | xargs grep {} os_clusters/piRNA_clusters.bed パイプの前の最初の部分は機能します。8707、8824など、検索する用語を生成します。ただし、後者は機能しません。 awk '' ... | xargs grep {} os_clusters/piRNA_clusters.bed パイプによって生成された用語をターゲットファイルで検索する代わりに、検索用語を入力ファイルと見なします。したがって、次のようなエラーメッセージが表示されます。 grep: 8707: No such file or directory grep: 8824: No such file or directory os_clusters/piRNA_clusters.bedパイプによって生成された用語をファイルで検索するには、何を変更する必要がありますか?
23 bash  grep  pipe 

3
bashシェル-sshリモートスクリプトは出力とキャプチャコードをキャプチャしますか?
シェルを使用して、リモートサーバーでスクリプトを呼び出したい。そのスクリプトの出力(ログメッセージ)とそれが返す終了コードをキャプチャしたいと思います。 これを行う場合: ssh user@server /usr/local/scripts/test_ping.sh echo "$?" 終了コードを取得しましたが、リモートログメッセージをキャプチャできません。 これを行う場合: local RESULTS=$(ssh user@server /usr/local/scripts/test_ping.sh) echo "$?" LOG "${RESULTS}"; LOG関数を使用して出力をログに記録できますが、正しい終了コードを取得できないようです。取得したコードは可変割り当てからのコードであると想定しています。 LOG関数を引き続き使用して、すべての出力をフォーマットし、ファイル、syslog、および画面に送信します。 結果を変数にキャプチャし、リモートスクリプトから正しい終了コードを取得するにはどうすればよいですか?
23 bash  shell  ssh  remote 

9
現在bashコンソールでパラメーターに入力されている繰り返し方法
私は次の行に沿って何かを入力していました: mv foo/bar/poit/zoid/narf.txt そして突然気づいた、私は再びそのパラメータの大部分を入力する必要があります mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt タブ補完を使用しても、非常に苦痛です。テキストをマウスで選択してミドルクリックすることでパラメーターをコピーして貼り付けることができますが、それでは十分ではありません。キーボードのままにしておきたい。 キーボードを使用して行の現在のパラメーターをコピーして貼り付ける方法はありますか?

1
ユーザーのデフォルトの.bashrcファイルを設定するにはどうすればよいですか?
Ubuntu 10.4では、/etc/bash.bashrcファイルを編集してコマンド履歴サイズ(HISTSIZE=5000)などの変数を設定しましたが、新しいユーザーを作成すると、デフォルトでUbuntu .bashrcはホームディレクトリにファイルを提供し、このセットHISTSIZE=1000が私のものをオーバーライドしています。.bashrc作成されたデフォルトのファイルを変更するにはどうすればよいですか?

2
cdタブの色を完全に設定する方法はありますか?
私はubuntu 11.04を使用しています。 cd、lsなどのタブ補完リストの後に出力の色を設定する方法はありますか? すなわち myshell@root$ cd ~/user/files/ タブを押す... myfile myfoo mybar <-この出力は色付きですか? あなたが私の図を楽しんでくれたことを願っています。

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