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

シェルスクリプト、シェルによって解釈される実行可能ファイル(bash、zshなど)に関する質問。

3
psコマンドのCPUフィールドをどのようにソートできますか?
CPUを最も多く使用するプロセスを見つける小さなコマンドを作成しようとしています。 最初に、ps aux > file.txt次にを使用しcut -c 16-20 file.txt | sort -n | tail -5ます。 私が得る結果はこれです: 1.0 2.7 8. 14.5 14.5 だから私の質問は、どのように%CPU使用法と他のフィールドの両方を一緒に出力させることができますか?
18 bash  shell-script  sort  ps 

3
2つのファイルの行を並行してループする[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 UnixおよびLinux Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 私が作成しているスクリプトの目的は、2つのシリーズのファイルを比較することです。ファイル名自体は、1行に1つのパスを持つ2つの個別のファイルに保存されます。私のアイデアはwhile read、ファイル名のリストごとに1つずつ、2つのループを作成することですが、2つのループをどのように混在させることができますか? while read compareFile <&3; do if [[ ! $server =~ [^[:space:]] ]] ; then #empty line exception continue fi echo "Comparing file - $compareFile" if diff "$compareFile" _(other file from loop?_) >/dev/null ; then echo Same else echo Different fi done …


3
特定のディレクトリ内のすべてのファイルを日付順に連結するにはどうすればよいですか?最新のファイルが一番上にある必要がありますか?
そして、一番古いファイルが一番下にありますか? また、これを行うと、各HTMLファイルに含まれる冗長ヘッダーを削除することもできますか?私は自分自身が多くのHTMLファイルを連結しているのを見ています、そして最終的なファイルのファイルサイズを少し減らすといいでしょう。

1
Bashでの '2>>(command)'リダイレクトの意味
しばらく前にスクリプトを作成し、その周りにログを追加しましたが、ログのリダイレクトがどのように機能するか忘れました:-( その要点は次のとおりです。 #!/bin/bash LOGFILE=/some/path/mylogfile ( # here go my commands which produce some stdout # and, if something goes wrong, also some stderr ) 1>>${LOGFILE} 2> >( tee -a ${LOGFILE} >&2 ) スクリプトを実行すると、には何もstdout出力されず、に進むもののみが出力されstderrます。ログファイルは${LOGFILE}、stdoutとstderrの両方をキャプチャします。 スクリプトを実行し、端末に出力がない場合、すべてが正常であることがわかります。出力がある場合、何か問題が発生したことがわかります。ログファイルを確認して、問題の内容を確認できます。 今私を困惑させるリダイレクトの部分は、次の構文です: 2> >( some command ) 誰もがそこで何が起こっているのか説明できますか?

7
並列バックグラウンドプロセス(サブシェル)の終了コードを収集する
次のようなbashスクリプトがあるとします。 echo "x" & echo "y" & echo "z" & ..... echo "Z" & wait サブシェル/サブプロセスの終了コードを収集する方法はありますか?これを行う方法を探していますが、何も見つかりません。これらのサブシェルを並行して実行する必要があります。そうでなければ、これは簡単です。 汎用的なソリューションを探しています(並行して実行するサブプロセスの数が不明/動的です)。

2
ネストされたcaseステートメント内からwhileループを抜け出すにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 UnixおよびLinux Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 以下のスクリプトでは-潜在的に悪いスクリプトの実行を続行することを確認するようユーザーにプロンプ​​トを表示します-ユーザーYがプロンプトで入力すると、caseブロックから抜け出し、while再びループに送り返されます。 #! /bin/bash set -e echo echo "bad install start" echo "-----------------------------------------" while true; do read -p "this script will probably fail - do you want to run anyway?" yn case $yn in [Yy]*) ##### WHAT GOES HERE?? ##### ;; [Nn]*) exit ;; …

8
cron対 スリープ-効率的なCPU /メモリ使用率の点でどちらが良いですか?
ケース: 特定の時間間隔でいくつかのコマンド/スクリプトを実行する必要があり、これには2つのオプションがあります。 cron-jobを設定します sleepスクリプト自体にループを実装します。 質問: リソース消費の観点から見た場合、どちらが良いオプションですか?あるcron良い方法は?cronはある種のトリガーまたは他のトリガーよりも効率的なトリガーを使用しますか?cronは、ジョブをチェックして開始するためにどのような手順を使用しますか?

2
zsh:パターンからファイルを除外する
次のファイルがあるとします。 |-- bar `-- foo |-- type_A_1 |-- type_A_2 |-- type_B_1 |-- type_B_2 |-- type_B_xx |-- type_B_xx `-- something_else 私は次のコマンドを考えました print -l foo/*~{type_B*} で始まるものを除くすべての下にすべてを印刷しますが、そうではなく、fooの下にすべてを印刷します:foo type_B foo/type_A_1 foo/type_A_2 foo/type_B_1 foo/type_B_2 foo/type_B_xx foo/something_else 私もprint -l foo/*~type_B同じことを試してみました。 ~zshで例外ワイルドカードはどのように機能しますか?

4
ソースコード内のread -pのプロンプトで長い文字列を複数の行に分割する方法は?
として実行されるインストールスクリプトを作成しています/bin/sh。 ファイルの入力を求める行があります: read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY この長い行を多くの行に分割して、80文字を超えないようにします。スクリプトのソースコード内の行について話しています。スクリプトの実行時に画面に実際に印刷される行についてではありません! 私が試したもの: フリストアプローチ: read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? …

3
bashシェルスクリプトループから配列インデックス変数にアクセスしますか?
bashシェルスクリプトで配列をループしながら、配列インデックス変数にアクセスしたい。 myscript.sh #!/bin/bash AR=('foo' 'bar' 'baz' 'bat') for i in ${AR[*]}; do echo $i done 上記のスクリプトの結果は次のとおりです。 foo bar baz bat 私が求める結果は次のとおりです。 0 1 2 3 これを達成するためにスクリプトを変更するにはどうすればよいですか?

3
bashの条件ステートメントでgrepを使用する
私はまだbashでのスクリプト作成は非常に新しいので、基本的なことだと思ったことをいくつか試してみました。Ubuntu 14.04を実行しているサーバーから更新するDDNSを実行したい。 dnsimpleからいくつかのコードを借りて、これは私がこれまで持っているものです: #!/bin/bash LOGIN="email" TOKEN="token" DOMAIN_ID="domain" RECORD_ID="record" IP=`curl -s http://icanhazip.com/` OUTPUT=` curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "X-DNSimple-Domain-Token: $TOKEN" \ -X "PUT" \ -i "https://api.dnsimple.com/v1/domains/$DOMAIN_ID/records/$RECORD_ID" \ -d "{\"record\":{\"content\":\"$IP\"}}"` if ! echo "$OUTPUT" | grep -q "(Status:\s200)"; then echo "match" $(echo "$OUTPUT" | grep -oP '(?<="message":")(.[^"]*)' …


4
スクリプトがルートでない場合にスクリプトの実行を停止する方法(「ルートとして実行されていません!終了しています...」をエコーし​​ます)
ここに私のソースがあります: #!/bin/bash echo "Running script to free general cached memory!" echo ""; echo "Script must be run as root!"; echo ""; echo "Clearing swap!"; swapoff -a && swapon -a; echo ""; echo "Clear inodes and page file!"; echo 1 > /proc/sys/vm/drop_caches; echo ""; キャッシュなどをクリアし、ターミナルでrootとして実行する必要があることをエコーし​​ます。基本的に、rootとして実行されていないことを検出した場合、スクリプトの実行を停止するだけです。 例: "Running script to free general …


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