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

「シェル」という用語は、UnixおよびLinuxオペレーティングシステムに最も頻繁に関連付けられている、テキストベースの対話型コマンドインタープリターの一般的なクラスを指します。シェルスクリプトに関する質問については、「bash」、「powershell」、「ksh」などのより具体的なタグを使用してください。特定のタグがない場合は、ポータブル(POSIX準拠)ソリューションを想定する必要がありますが、「posix」を追加するか、代わりに「sh」を使用することをお勧めします。

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 

15
ディレクトリ内のすべてのファイルを解凍する
(Windowsマシンで作成された)ZIPファイルのディレクトリがあります。を使用して手動で解凍できunzip filenameますが、シェルを使用して現在のフォルダー内のすべてのZIPファイルを解凍するにはどうすればよいですか? Ubuntu Linux Serverを使用する。
203 linux  shell  wildcard  unzip 

10
sedでの環境変数の置換
これらのコマンドをスクリプトから実行すると、次のようになります。 #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla それは結構です。 しかし、実行すると: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' 私はチュートリアルで、シェルから環境変数を置き換えるには停止する必要があることを読み、$varname直接置き換えられないようにその部分を「引用」します。これは私がやったことであり、変数が直前に定義されている場合にのみ機能します。 $varシェルで定義されているsedを環境変数として認識させるにはどうすればよいですか?
202 linux  unix  shell  sed 

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 

13
PHPの非同期シェルexec
シェルスクリプトを呼び出す必要があるが、出力はまったく気にしないPHPスクリプトを持っています。シェルスクリプトは多数のSOAP呼び出しを実行し、完了するのに時間がかかるため、応答を待機している間、PHPリクエストの速度を低下させたくありません。実際、PHPリクエストは、シェルプロセスを終了せずに終了できるはずです。 私は様々に見てきましたexec()、shell_exec()、pcntl_fork()、などの機能、それらのどれもまさに私が望むものを提供するように見えるん。(または、もしそうなら、それは私には明確ではありません。)何か提案はありますか?
199 php  asynchronous  shell 

20
Unixシェルで数値の列を合計する
内のファイルのリストを指定するとfiles.txt、次のようなサイズのリストを取得できます。 cat files.txt | xargs ls -l | cut -c 23-30 これは次のようなものを生成します: 151552 319488 1536000 225280 これらの数値の合計を取得するにはどうすればよいですか?
198 linux  unix  shell 

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 


17
1行のコマンドラインで複数行のステートメントを実行しますか?
私はPythonを使っ-cてワンライナーループを実行しています、すなわち: $ python -c "for r in range(10): print 'rob'" これは正常に動作します。ただし、forループの前にモジュールをインポートすると、構文エラーが発生します。 $ python -c "import sys; for r in range(10): print 'rob'" File "<string>", line 1 import sys; for r in range(10): print 'rob' ^ SyntaxError: invalid syntax これを修正する方法はありますか? Makelineに含めることができるように、これを1行にすることが重要です。

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 

8
バッチファイルからPowerShellスクリプトを実行する方法
このスクリプトをPowerShellで実行しようとしています。以下のスクリプトをps.ps1デスクトップと同じように保存しました。 $query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2" Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"} このPowerShellスクリプトを実行するバッチスクリプトを作成しました @echo off Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1 pause しかし、私はこのエラーを得ています:

7
shシェルを使用して文字列を比較する
SHシェルを使用していて、文字列を変数の値と比較しようとしていますが、if条件は常にtrueに実行されます。どうして? ここにいくつかのコードがあります: Sourcesystem="ABC" if [ "$Sourcesystem" -eq 'XYZ' ]; then echo "Sourcesystem Matched" else echo "Sourcesystem is NOT Matched $Sourcesystem" fi; echo Sourcesystem Value is $Sourcesystem ; これでも機能しません: Sourcesystem="ABC" if [ 'XYZ' -eq "$Sourcesystem" ]; then echo "Sourcesystem Matched" else echo "Sourcesystem is NOT Matched $Sourcesystem" fi; echo Sourcesystem Value …
196 shell  unix  sh 

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