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

Bashコマンドシェル用に記述されたスクリプトに関する質問。エラー/構文エラーのあるシェルスクリプトについては、ここに投稿する前に、shellcheckプログラム(またはhttps://shellcheck.netのWeb shellcheckサーバー)で確認してください。Bashのインタラクティブな使用に関する質問は、スタックオーバーフローよりもスーパーユーザーで話題になる可能性が高くなります。

5
Bash:If / Elseステートメントを1行で
some_processサーバーでプロセス(と呼ばれていると仮定)が実行されているかどうかを確認しようとしています。ある場合は1をエコーし​​、それ以外の場合は0をエコーし​​ます。 これは私が使用しているコマンドですが、部分的にしか機能しません(詳細は以下を参照)。スクリプトは1行で記述する必要があることに注意してください。 ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi 注:[s]ではsome_proces[s]ないようにすることであるgrep自分自身を返すから。 some_process実行中の場合、"1"エコーされますが、問題ありません。ただし、some_processが実行されていない場合、何もエコーされません。
204 bash 

13
履歴に残さずにコマンドを実行する[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 8ヶ月前に閉鎖。 この質問を改善する 一部のコマンドを実行したいが、コマンド履歴に保存したくない。そのため、.bash_historyファイル内で検索することはできません。 この方法でbashコマンドを実行する方法はありますか?
203 linux  bash  unix 

4
CTRL-rと同様に、検索Bash履歴を転送できない
私はCTRL- と同じようにbash履歴を検索しようとしていますrが、順方向です。 前のコマンドをもう一度見つけるのがあまりにも頻繁にCTRL-の場合、私にとっては苦痛でしrた。 逆検索と同様に、Bash履歴を順方向検索するにはどうすればよいですか?
203 bash  search 

12
bash / shellスクリプトからのhttp応答コードを評価する方法は?
私は明白なものを欠いていると感じていますが、man [curl|wget]またはgoogleで成功していません(「http」はそのような悪い検索語になります)。エラーメッセージとともにステータスコード500を返すことが多い、頻繁に失敗するウェブサーバーの1つに対する迅速で汚い修正を探しています。これが発生したら、再起動する必要があります。 根本的な原因を見つけるのは難しいようですが、私たちは迅速な修正を目指しており、本当に修正できるまでの時間を埋めるのに十分であることを期待しています(サービスは高可用性を必要としません) 提案された解決策は、5分ごとに実行されるcronジョブを作成し、http:// localhost:8080 /をチェックすることです。これがステータスコード500で戻る場合、Webサーバーが再起動されます。サーバーは1分以内に再起動するため、すでに実行されている再起動を確認する必要はありません。 問題のサーバーは、現在必要なものを実行するのに十分なだけのパッケージがインストールされたubuntu 8.04最小インストールです。bashでタスクを実行するためのハード要件はありませんが、インタープリターをインストールせずに、このような最小限の環境で実行したいです。 (私はスクリプトに精通しているので、httpステータスコードを環境変数に割り当てるコマンド/オプションで十分です-これは私が探していて見つけられなかったものです。)
203 http  bash  shell  http-headers 

11
Linuxでtimeコマンドの出力をファイルにリダイレクトする方法は?
Linuxでのプログラムのタイミングに関するちょっとした質問:timeコマンドは、プログラムの実行時間を測定することができます: [ed@lbox200 ~]$ time sleep 1 real 0m1.004s user 0m0.000s sys 0m0.004s うまくいきます。しかし、出力をファイルにリダイレクトしようとすると失敗します。 [ed@lbox200 ~]$ time sleep 1 > time.txt real 0m1.004s user 0m0.001s sys 0m0.004s [ed@lbox200 ~]$ cat time.txt [ed@lbox200 ~]$ ファイルを書き込むオプション-oを使用した時間の実装が他にもあることは知っていますが、私の質問はそれらのオプションなしのコマンドについてです。 助言がありますか ?
202 linux  bash  time 

10
Bashの文字列から最後のn文字を削除する方法は?
次のvarような文字列を保持するBashスクリプトに変数があります。 echo $var "some string.rtf" この文字列の最後の4文字を削除して、結果を新しい変数var2に割り当てたいので、 echo $var2 "some string" これどうやってするの?
202 bash 

3
すべてのサブディレクトリのすべてのファイルをbashの1つの圧縮ファイルにgzipする方法
重複の可能性: 一連のディレクトリをgzipしてtar圧縮ファイルを作成する この記事では、ディレクトリ構造内で各ファイルを個別にgzipする方法について説明します。しかし、少し違うことをする必要があります。特定のディレクトリの下にあるすべてのファイルに対して1つの大きなgzipファイルを作成する必要があります。また、圧縮ファイル(files.gzなど)の出力ファイル名を指定し、古い圧縮ファイルが既に存在する場合はそれを上書きできるようにする必要もあります。
201 linux  bash  shell  gzip 

11
スペースを含むファイルのリストを反復処理します
ファイルのリストを反復処理したい。このリストはfindコマンドの結果なので、私は思いつきました: getlist() { for f in $(find . -iname "foo*") do echo "File found: $f" # do something useful done } ファイルの名前にスペースが含まれている場合を除き、問題ありません。 $ ls foo_bar_baz.txt foo bar baz.txt $ getlist File found: foo_bar_baz.txt File found: foo File found: bar File found: baz.txt スペースの分割を回避するにはどうすればよいですか?
201 linux  bash  shell 

19
Bashスクリプトでユーザーアカウントとパスワードを自動的に追加する方法
Linux(Fedora 10)でユーザーアカウントを作成し、bashスクリプト(または必要に応じて)を介してパスワードを自動的に割り当てる機能が必要です。 Bash経由でユーザーを作成するのは簡単です。例: [whoever@server ]# /usr/sbin/useradd newuser Bashでパスワードを割り当てることは可能ですか?これは機能的にこれに似ていますが、自動的に: [whoever@server ]# passwd newuser Changing password for user testpass. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [whoever@server ]#
200 linux  bash  passwd 

14
ファイルの最長の行
ファイルの最も長い行の長さを見つける簡単な方法を探しています。理想的には、スクリプトではなく、単純なbashシェルコマンドになります。
198 bash  shell  utilities 


14
Linuxでポートが開いているかどうかを効率的にテストしますか?
bashスクリプトから、ポート445がサーバー上で開いているか、リッスンしているかどうかをすばやく確認するにはどうすればよいですか。 私はいくつかのオプションを試しましたが、簡単なものが欲しいです: 1. lsof -i :445 (数秒かかります) 2. netstat -an |grep 445 |grep LISTEN(数秒かかります) 3. telnet(戻りません) 4. nmap、netcatサーバーで使用できません 最初に列挙せず、その後に歩む方法を知っておくといいでしょう。
197 linux  bash  shell  port 


4
Bashスクリプトは限られた数のコマンドを並行して処理します
次のようなbashスクリプトがあります。 #!/bin/bash wget LINK1 >/dev/null 2>&1 wget LINK2 >/dev/null 2>&1 wget LINK3 >/dev/null 2>&1 wget LINK4 >/dev/null 2>&1 # .. # .. wget LINK4000 >/dev/null 2>&1 しかし、コマンドが完了するまで各行を処理してから次の行に移動するのは非常に時間がかかります。たとえば、一度に20行を処理し、終了したらさらに20行処理したいと思います。 wget LINK1 >/dev/null 2>&1 &コマンドをバックグラウンドに送信して続行することを考えましたが、ここには4000行あります。これは、パフォーマンスの問題が発生することを意味します。同時に開始する必要があるプロセスの数に制限があるので、これは良いことではありません考え。 私が今考えている解決策の1つは、コマンドの1つがまだ実行されているかどうかを確認することです。たとえば、20行後、次のループを追加できます。 while [ $(ps -ef | grep KEYWORD | grep -v grep | wc -l) -gt 0 ]; …
196 linux  bash  shell 

15
Bashスクリプトの範囲からの乱数
2000-65000シェルスクリプトからランダムなポート番号を生成する必要があります。問題は$RANDOM15ビットの数値なので、行き詰まっています! PORT=$(($RANDOM%63000+2001)) サイズの制限がなければ、うまく機能します。 誰かが私がこれを行う方法の例を持っていますか、おそらく/dev/urandom範囲から何かを抽出してそれを取得することによって?
196 bash  shell  scripting 

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