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

スクリプトは、スタンドアロンの実行可能プログラムにコンパイルされるのではなく、インタープリタープログラムによって実行される一連のコマンドまたは命令です。

1
ファイルごとにディレクトリを移動する方法は?(「コピーして削除」の代わりに)
私のコンピューターには500GBのドライブが1つあります。 私はからのデータの400ギガバイトを移動したい/unencryptedの/encrypted。 両方のディレクトリが同じパーティションにあるが、/encryptedによって処理されるのeCryptfs、そうmv /uncrypted/* /encryptedでしょう: すべてのファイルを宛先にコピーします 次に、それらをソースから削除します ...それは800GBを必要とするので、私は余裕がない ファイルを1つずつ移動した場合、問題はありません(ecryptfsゾーンは動的です)。 mvディレクトリをファイルごとに移動するオプションや別のツールはありますか? 膨大な数のファイルがあるため、ARG_MAXはスクリプトベースのソリューションでは問題になる可能性があります。

8
bashスクリプト内の履歴コマンド
履歴はシェル組み込みコマンドであり、BASHスクリプト内で使用できませんでした。だから、BASHスクリプトを使用してこれを達成する方法はありますか? ここで、私のスクリプトを紹介します。 #!/bin/bash history | tail -100 > /tmp/history.log cd /tmp uuencode history.log history.txt | mail -s "History log of server" hello@hel.com

3
複数のファイルの内容をスクリプトの標準入力に供給するための略記
たとえば、スクリーンからいくつかの結果をscript読み取りstdin、画面に出力するというスクリプトがあります。 1つのファイルのコンテンツをフィードしたい場合は、次のように入力します。 $ ./script < file1.txt しかし、複数のファイルの内容を同じ方法でスクリプトにフィードしたい場合、どうしても可能ですか?これまでに思いついた最高のものは: cat file1.txt file2.txt > combined.txt && ./script < combined.txt 2つのコマンドを使用して、一時ファイルを作成します。同じことを行う方法はありますが、結合ファイルの作成をバイパスする方法はありますか?

8
コンピューターがオンラインかどうかを確認するためのpingよりも速い方法ですか?
一連のラボコンピューター用にlanスクリプトを起動します。コンピューターのホスト名、IP、およびMACのリストを含むsqlite dbがあり、現在、それぞれを '-c1'でpingしているので、無限に実行されません-しかし、それでも少し時間がかかり、取得するより速い方法がありますpingではなく答えますか?pingを使用すると、pingの回答を継続する必要があるため、スクリプトがかなり遅くなるようです。 提案をありがとう!

6
実行されたコマンドからエラーメッセージをキャプチャする方法
自動サーバー強化スクリプトを作成することを任されました。必要なことの1つは、実行された各コマンドのすべての出力のレポートです。エラーメッセージを文字列内に保存し、テキストファイルに追加したいです。 このコマンドを実行したとしましょう: /sbin/modprobe -n -v hfsplus 私のマシンでこれを実行すると、出力は次のようになります。 FATAL: Module hfsplus not found そのエラーメッセージを文字列内に保存するにはどうすればよいですか?どんな助けも大歓迎です。ありがとう!
20 bash  scripting  string 

2
受け取っているアプリケーションを殺さずにLinux teeコマンドを終了する方法
Linuxマシンの電源が入っている限り実行するbashスクリプトがあります。以下に示すように開始します。 ( /mnt/apps/start.sh 2>&1 | tee /tmp/nginx/debug_log.log ) & 起動後、ps出力にteeコマンドが次のように表示されます。 $ ps | grep tee 418 root 0:02 tee /tmp/nginx/debug_log.log 3557 root 0:00 grep tee ログが特定のサイズに達すると、teeが生成するログのサイズを監視し、teeコマンドを強制終了する機能があります。 monitor_debug_log_size() { ## Monitor the file size of the debug log to make sure it does not get too big while true; do cecho …
19 linux  scripting  pipe  kill  tee 


4
相互接続されたコマンド間でデータの循環フローを実装するにはどうすればよいですか?
コマンドを相互に接続する方法は2種類あります。 パイプを使用して(次のコマンドのstd-outputをstd-inputに入力します)。 Teeを使用して(出力を多数の出力に接合します)。 それが可能かどうかわからないので、仮想の接続タイプを描画します。 たとえば、コマンドの代わりに変数を使用するこの擬似コードのように、コマンド間でデータの循環フローを実装するにはどうすればよいでしょうか。 pseudo-code: a = 1 # start condition repeat { b = tripple(a) c = sin(b) a = c + 1 }

4
letまたはexprが0と評価されると、bash -eは終了します
-eを設定するbashスクリプトがあるので、スクリプトは終了ステータス!= 0で終了します。 変数に割り当てられた基本的なシェル算術演算を実行しようとしていますが、式が0に等しい場合があり、letまたはexprコマンドの終了ステータスが「1」になります。 以下に例を示します。 #!/bin/bash -ex echo "Test 1" Z=`expr 1 - 1` || true echo "Z will print" let "A=4 - 4" echo "A WILL NEVER PRINT $A" Y=`expr 1 - 1` echo "Y WILL NEVER PRINT $Y" X=$(expr 2 - 2) echo "X WILL NEVER PRINT $X" 出力は次のとおりです。 …

6
多くのファイルでコマンドを実行する
多くのファイル(xyz1、xyz2、xyz5025まで)を含むフォルダーがあり、それらのすべてでスクリプトを実行し、xyz1.faa、xyz2.faaなどを出力として取得する必要があります。 単一ファイルのコマンドは次のとおりです。 ./transeq xyz1 xyz1.faa -table 11 それを自動的に行う方法はありますか?たぶん、フォーコンボですか?

6
実行時にbashスクリプトから特定のコマンドのみを印刷するにはどうすればよいですか?
呼び出すときに渡すコマンドライン引数に基づいたさまざまなifステートメントを含むbashスクリプトがあります。どのコマンドが実行されているかについて何らかの出力があると、これらすべてのifステートメントの流れを確認するのに役立ちますが、現在の解決策では情報が多すぎます。 set -vスクリプトで使用すると、コマンドがスクリプトで実行されたときに画面に印刷されるのを見るのに多少役立ちましたが、コマンドが多すぎます。これは、スクリプトの完全なコピーのようなものです。 実行されているコマンドを示す出力が必要ですが、コメント、改行、ifステートメント内の式などは表示したくありません。 -vオプションで生成されたすべての出力を正規表現に渡してから印刷する方法はありますか?または、特定の「タイプ」のコマンドのみを出力するbashを取得する他のソリューション(たとえば、bash固有のステートメント、コメントなどではなく、実行可能ファイルを使用していますか?) [1] /programming/257616/sudo-changes-path-whyはこれに非常に役立ち、set -v使用方法の提案を得ました。 編集: 私が実行しているものに似た(しかし同一ではない)スクリプト: #!/bin/bash #get verbose command output set -v env=$1 if [ "$env" == "dev" ]; then python ascript.py fi if [ "$env" == "prod" ]; then #launching in prod will most likely fail if not run as root. Warn user if …

1
/ usr / bin / timeシェルコマンドで%e精度を上げる
シェルでtimeコマンドを実行するとtime ./myapp、次のような出力が得られます。 real 0m0.668s user 0m0.112s sys 0m0.028s ただし、コマンドを実行する\time -f %e ./myappと精度が失われ、次のようになります。 2.01s %Eコマンドを使用すると、同じように精度が失われます。さらに精度を上げるためにそれを変更するにはどうすればいいのですが、それでも秒が出力されるだけですか? 私はこのLinux / Unixコマンドに基づいて研究を行いました:時間とこの質問
19 shell  scripting  time 

4
IPマルチキャストが有効になっているかどうかを知る方法
IPマルチキャストテストを実行するスクリプトがあります。ただし、特定のLinuxマシンでスクリプトが失敗します。 CONFIG_IP_MULTICASTカーネルがこれでコンパイルされたかどうかを判断するために、カーネル構成ファイルを見ることができることを知っています。ただし、スクリプトの欠落している要件にフラグを立てる方が、答えを確認し/procたりsysctl取得したりできれば簡単です。 IPマルチキャストが見ないでカーネルにコンパイルされたかどうかを確認する方法はありCONFIG_IP_MULTICASTますか?



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