最新記事

stderrが存在する場合は、通知を送信するために通知本文でstderrを使用します。
bash
shell-script
shell
command-line
notify-send

stderrが存在する場合は、通知を送信するために通知本文でstderrを使用します。

次のようなコマンドがあるとしましょう。 foo() { echo a echo b >&2 echo c echo d >&2 } 次のコマンドを使用して端末でstdoutを処理していますが、通知を介してエラーが送信されます。 foo 1> >(cat) 2> >(ifne notify-send "Error") b d私が経験している問題は、stderr(この場合)を通知送信の本文として処理したいということです。 私は試した: foo 1> >(cat) 2> >(ifne notify-send "Error" "$(cat)") foo 1> >(cat) 2> >(ifne notify-send "Error" "$(

Admin

複数の個別ジョブに1つの入力ファイルを使用する方法
shell
scripting
memory
images
imagemagick

複数の個別ジョブに1つの入力ファイルを使用する方法

ファイルを読み取り、さまざまなパラメータを使用して複数のタスクを実行し、最終的に各出力を別々のファイルとして保存したいと思います。 現在、私は以下のコードスニペットに示すようにこれを行います。これは実際に画像を変更することなく各反復で画像を読み取る。大きな画像(ここでは400 MB)の場合、速度は非常に遅くなります。メモリが十分に大きくてメモリにロードしてメモリから一度だけ処理しても大丈夫です。しかし、どうすればいいのかわかりません。 ImageMagick以外のシェルにはありません。 ImageMagickこれを行うための基本的な方法はありますか? メモリマッピングファイルシステムにファイルを一度コピーし、以下のスクリプトを使用するのが最も簡単ですか? #!/bin/sh FILE=foo.tif i=65;END=80;STEP=1 while [ $i -le $END ]; do convert $FILE -threshold ${i}\% ${i}.png & i=$((i+$STEP)) done もしシェル部分POSIX規格を維持します。編集:取得したコアを活用するためにバックグラウンドでサブプロセスを開始しました。

Admin

論理ボリュームを作成し、ディレクトリにマウントします。
linux
shell-script
shell

論理ボリュームを作成し、ディレクトリにマウントします。

私はスクリプトの世界が初めてなので、あなたの助けが必要です。論理ボリュームを作成し、それをディレクトリにマウントするスクリプトを作成しています。しかし、私のコードにいくつかのエラーが表示されますが、その理由がわかりません。 #!/bin/bash ls /home echo "Where would you like to mount the logical Valume? Choose a directory please!" read path lvcreate -L 2G -n lvHolla fedora_localhost-live mkfs -t ext3 /dev/fedora_localhost-live/lvHolla ls /home/ cd mount -t ext3 /dev/fedora_localhost-live/lvHolla /home/"$path" 私が得るエラー: Volume group "fedora_localhost-live" has insufficient free space (0 extents): 512 required. mke2fs 1.45.5 (07-Jan-2020) The file /dev/fedora_localhost-live/lvHolla does not exist and no size was specified mount: /home/naseer: special device /dev/fedora_localhost-live/lvHolla does not exist 空き容量が不足して最初のエラーが発生することを知っています。ところで、なぜ2番目、3番目なのでしょうか? あなたのスムーズなフィードバックと私の間違いを修正していただきありがとうございます!

Admin

Linuxで空のファイルとディレクトリの両方を再帰的に削除する方法は?
linux
bash
shell

Linuxで空のファイルとディレクトリの両方を再帰的に削除する方法は?

親ディレクトリのすべての空のファイルとディレクトリを再帰的にクリーンアップする方法は? 次のディレクトリ構造があるとします。 Parent/ |____Child1/ |______ file11.txt (empty) |______ Dir1/ (empty) |____Child2/ |_______ file21.txt |_______ file22.txt (empty) |____ file1.txt 私はそう終わらなければならない: Parent/ |____Child2/ |_______ file21.txt |____ file1.txt

Admin

/film/の後に同じ文字列を含む重複行
bash
shell
duplicate

/film/の後に同じ文字列を含む重複行

説明するのは難しいです。昔から始めたいです。太字を見てください。 次のような長いリストがあります。 http://dl3/film/**Daylights.End**.3******************* http://dl45/film/**The.Wild.Life**.720*************** http://dl45/film/**The.Wild.Life**.10*************** http://dl3.pw/film/T**he.Wild.Life**.2******************* http://dl45/film/**Daylights.End**.2******************* その後、同じ文字列を含む重複した行をすべて探したいのですが、行が/film/終わるまで検索したくありません。検索では、その後に10〜20文字などの重複した文字列を見つける必要があります。/film/ 次の文字列/film/は異なります。 この方法では、約5000行のリストを検索してすべての重複行を見つけ、作成後に1つまたは2つを削除、切り取り、コピー、または表示する必要があります。 事前にありがとう

Admin

パイピングカールhttp://cheat.sh/pythonは奇妙なESCを示しています。 [38;5;246m [重複]
shell-script
shell
curl
less
streams

パイピングカールhttp://cheat.sh/pythonは奇妙なESCを示しています。 [38;5;246m [重複]

この質問にはすでに答えがあります。: ANSIカラーでファイルを表示 (回答4個) 閉鎖4年前。 私はLinuxに初めて触れました。 curl cheat.sh/python私の基本的な質問:簡単に上下にスクロールできるようにするか、manページなどの出力を表示する必要があります。less 私が試したこと:curl cheat.sh/python | less 出力:このような奇妙なテキスト - ESC[38;5;246m# Python は高度なプログラミング言語です。 ESC[39m ESC[38;5;246m# そして Python は Python インタプリタです。ESC[39m ESC [38; 5; 246m#Pythonを使用するサーバーの基本例ESC [39m ESC [38; 5; 246m#)は、ポート8の現在のディレクトリでWebサーバーを起動します。 000ESC[39m ESC[38;5;246m# 転送到着するhttp://127.0.0.1:8000ESC[39m ESC[38;5;246m#ESC[39m ESC[38;5;246m# Python v2.7ESC[39m ESC[38;5;252mpythonESC[39mESC[38;5;252m]) ESC[39mESC[38;5;252m] - mESC[39mESC[ 38;5;252m ESC[39mESC[38;5;252mSimpleHTTPServerESC[39m ESC[38;5;246m#) Python 3ESC[39m ESC[38;5;252mpythonESC[39] 39mESC] [38;5;252m-mESC[39mESC[ 38;5;252m ESC[39mESC[38;5;252mhttp.serverESC[39mESC[38;5;252m ESC[39mESC]] 38;5;6.m30] 。 視聴後これ、私は以下を試しました。curl -vs cheat.sh 2>&1 | less しかし、出力はやや同じです。 受け入れる:/ *バンドルは多目的HTTP / 1.1をサポートしていないとマークされています200 OKサーバー:nginx / 1.13.12日付:Wed Mar 25 17:50:04 GMT 2020コンテンツタイプ: text/plain; charset=utf-8 コンテンツの長さ: 25502 接続: 接続を維持 厳格なトランスポートセキュリティ:max-age = 63072000、サブドメインを含む Xフレームオプション:拒否;] 2; 0; 204; 0m ESC | __| _|__ ESC[38;2;0;204;0m\ESC[0mESC[38;2;0;204;0m ESC[0mESC[38;2;0;204;0m\ESC[0mESC[38;2; 0] ;204;0m ESC[0mESC[38;2;0; 204;0m ESC[0m ESC[48;2;85;85;85m ESC[0mESC[48;2;85;85;85m ESC[0mESC[ 48;2;85;85;85mESC[0mESC[48;2]]) ;85;85;85mTESC[0mESC[48;2;85;85;85mhESC[0mESC[48 ;2;85;85;85meESC[0mESC[ 48 ;2;85;85;85mESC[0mESC[48;2; 85;85;85moESC[0mESC[48;2;85;85;85mnESC[0mESC[48;2;85;85;85mlESC[0mESC[48; ;85;85;85myESC[0m ESC[48;2;85] ;85;85m ESC[0mESC[48;2;85;85;85mcESC[0mESC[48;2;85;85;85mhESC[0mESC[48]); 2;85;85;85meESC[0mESC[48;2;85;] 85;85maESC[0mESC[48;2;85;85;85mESC[0mESC[48;2;85;85;85m ESC[0mESC[48; 2;85;85;85msESC[0mESC[48;2;85;] 85;85mhESC[0mESC[48;2;85;85;85meESC[0mESC[48;2;85;85;85meESC[0mESC[48; 2;85;85];85mESC[0mESC[48;2;85;85; 85mESC[48;2;85;85;85myESC[0mESC[48;2;85;85;85moESC[0mESC[48; 2;85;85;85muESC[0mESC[48;2;85;85;85m] ESC[0mESC[48;2; 85;85;85mnESC[0mESC[48;2;85;85;85meESC[0mESC[48; 2;85;85;85meESC[0mESC[48;2;85;85;85mdESC[0mESC[48;2;85;]) 85;85m ESC[0mESC[48;2;85;85;85m ESC[0mESC[ 48) ;2;85;85;85m ESC[0m ... 最後に、上記のコードを変更すると(これはおそらく間違ったアプローチです):curl -vs cheat.sh 1>&2 | less 次にカールから目的の出力を取得しますが、ボタンを押すと端末に次のように表示されます。 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 〜(終了)デフォルトでqを押すと終了できますless。

Admin

sed は正確なパターンで行を削除します。
bash
shell
sed

sed は正確なパターンで行を削除します。

$iファイル内で正確に一致するパターンを見つけて、C1.txtsedコマンドを使用して一致する行を削除しようとしています。でも結局問題にぶつかりました。以下で私が見つけた結果と追加の詳細を見つけてください。 C1.txt # file: /home/mytest/data # owner: own # group: group-sm user::r-x group::rwx mask::rwx other::--- default:user::rwx default:group::r-x default:group:smr:rwx default:group:agm:r-x default:mask::rwx default:other::--- # file: /home/mytest/datasr123 # owner: own # group: group-sm user::r-x group::rwx mask::rwx other::--- 変わりやすい i=/home/mytest/data パスワード #!/bin/bash Input=C1.txt j=0 while IFS= read -r line; do j=$((j+1)) Exists=$(echo $line | grep -iwoP "$i" ) if [[ ! -z "$Exists" ]]; then sed -i "$j /\b"$i"\b/d" "$Input" fi done <"$Input" 予想される結果 C1.txt # file: /home/mytest/datasr123 # owner: own # group: group-sm user::r-x group::rwx mask::rwx other::--- エラーメッセージ sed: -e expression #1, char 3: unknown command: `/'

Admin

envコマンドは正確にどのように機能しますか?
linux
shell
environment-variables

envコマンドは正確にどのように機能しますか?

私は初めて環境変数に触れ、環境変数をスクリプトに渡して再定義する方法をテストしています。 動作をテストするために、testenv.sh次の名前の簡単なスクリプトを作成しました。 #!/bin/bash echo $COLOR だから私が走るとき $ env COLOR=RED ./testenv.sh 予想されるstdoutを取得しますRED。 しかし、私の質問は、次のコマンドを実行する理由です。 $ env COLOR=RED echo $COLOR 上記のような結果は得られません。実際には空の標準出力です。

Admin

矢印キーを使用せずに前のコマンドを取得する方法
shell
terminal
command-history

矢印キーを使用せずに前のコマンドを取得する方法

この質問にはすでに答えがあります。: 矢印キーを使わずに前のコマンドを繰り返すには? (回答16個) 閉鎖4年前。 通常、上矢印キーを使用して前のコマンドに移動できます。しかし、これが常に機能するわけではありません。 ASCIIシーケンス(「^[[A...」)を取得することもできますが、矢印キーを持たない古いキーボードにこの機能があるかどうかを知りたいです。当時はどのように機能しましたか? 別の方法がありますか?

Admin

{..}の変数の使用
bash
shell-script
shell

{..}の変数の使用

この質問にはすでに答えがあります。: Bash中括弧拡張に変数を使用できますか? (回答3個) 閉鎖4年前。 誰かが次のコードの理由を説明してもらえますか? for i in {1..5};do echo "hello" done 印刷 hello hello hello hello hello しかし、次の num=5 for i in {1..$num};do echo "hello" done 印刷 hello

Admin

shスクリプトでgrep出力を調整する
bash
shell-script
shell

shスクリプトでgrep出力を調整する

おやすみなさい、 MYSQLダンプに保存されているデータベースのリストを取得しようとしていますが、いくつかの設定を調整したいと思います。どうすればいいのかわかりません。 現在のコードは次のとおりです。 #!/bin/sh echo "What is the cPanel username!" read cpuser cd /home/${cpuser}/public_html sqldump=$(find . -name \*.sql -type f) sqlversion=$(grep "Server version" ${sqldump}) sqldbs=$(grep "CREATE DATABASE" ${sqldump}) echo "The dump location is" echo $sqldump echo "The SQL version is" echo $sqlversion echo "The databases in the dump are" echo $sqldbs 出力は(この場合) What is the cPanel username! domain1mysql4 The dump location is ./test/xxx/database/xxxx.sql The SQL version is -- Server version 4.1.14 The databases in the dump are CREATE DATABASE /*!32312 IF NOT EXISTS*/ `blog` /*!40100 DEFAULT CHARACTER SET latin1 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `blog1` /*!40100 DEFAULT CHARACTER SET latin1 */; CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET latin1 */; 最後に、2つの質問があります。 'blog' 'blog1' 'mysql'残りの行をリストせずに出力されるデータベースのみをリストできますか? 後でスクリプトから呼び出すために変数として保存することもできますか? フレディの調整出力 sh ./test.sh enter the cPanel username: domain10mysql4 ./home/saiprem/xxxxx/database/xxxx.sql:activesearch ./home/saiprem/xxxxx/database/x.sqxxxxl:alienstats ./home/saiprem/x/database/xxxxxx.sql:anahaw xxxx./home/saiprem/x/databasxxxe/xxxx.sql:b2 ./home/saiprem/x/database/x.sql:beeforumxxx

Admin