最新記事

「while」ループは変数の内容を読みません。
bash
test

「while」ループは変数の内容を読みません。

私の問題を説明するために小さなスクリプトを設定しました。 while同じ時間に繰り返しループを設定しました。$outputNo screen session found #!/bin/bash echo Stopping server... output=$(screen -S tls -X eval 'stuff "stop\015"') while [ "$output" = "No screen session found." ] do echo "$output" sleep 1 done echo Server stopped! このスクリプトを実行するとすぐに停止します。 Stopping server... Server stopped! わかりました、だから私の考え$outputはNo screen session found.。 しかし、ループを次のようなループwhileに切り替えると:until until [ "$output" = "No screen session found." ] $output私のループは今見た文字列と同じではないので、ループが繰り返され始めると予想する必要があります。ループが繰り返されている間にecho $output私が追加したコマンドは、ループが実際に終了する必要があることを示します! Stopping server... No screen session found. No screen session found. No screen session found. No screen session found. 〜のように$output 同じ No screen session found.! どうしたの?whileanduntilループが内容を無視するのはなぜですか$output?

Admin

検索テキストとjsonlファイルの間の交差点を見つける
bash
shell-script

検索テキストとjsonlファイルの間の交差点を見つける

jsonl検索テキストと特定のファイルとの交点を検索して検索したいと思います。例は次のとおりです。 検索テキスト: Alice goes to school Jsonlファイルの内容: {"text": "Alice goes to market"} 予想出力: Alice goes to grepを使って実装しようとしましたが、期待した動作は出力されませんでした。

Admin

Bashスクリプトは、他の変数に格納された値に基づいて変数を生成します。
bash
scripting

Bashスクリプトは、他の変数に格納された値に基づいて変数を生成します。

アドバイスを聞きたいです。 JSONファイルを返すIOTデバイスAPIを照会していますが、データの順序が常に順番に出力されるわけではありません。 bashを使用してjsonから値番号を正常に抽出し、連結して変数に保存しました。データをソートして保存するために、関連付けられた変数の値に基づいて変数を作成したいと思います。私はそれを使用していますジャックJSONと配列インデックスのクエリJSONでさまざまなオブジェクトをクエリし、$ idを生成します。 did=myvar$id echo $did myvar10 これが私が今詰まっている部分です。 $didに格納されている値で新しい変数を作成できるようにしたいです。 例えば、 もし私がエコ$didと入力してmyvar10を返すには、$ myvar10という新しい変数を作成する必要があります。 もし私がエコ$disを実行してmyvar8を返す場合は、$ myvar8という新しい変数を作成する必要があります。 誰かが私が正しい方向に動くのを助けることができますか? ティア

Admin

Tree Command:最終プロジェクトで型の依存関係を回避できますか?
bash
diff
tree

Tree Command:最終プロジェクトで型の依存関係を回避できますか?

私は、ローカルディレクトリを同じディレクトリのUSBバックアップバージョンと比較して、注目すべき/削除できる違いを識別していますtree。diff $ cd home/dir/ $ tree --charset=ascii -af . > ~/tree__local $ cd {usb}/home/dir/ $ tree --charset=ascii -af . > ~/tree__usb $ diff ~/tree__local ~/tree__usb > ~/diff-analysis.txt しかし、ツリーには最後の項目の上位四半期を去る習慣があることがわかりました。まあ、言葉で説明するのは難しいです。 $ tree --charset=ascii -af . . |-- ./bar | |-- ./bar/babushka | |-- ./bar/galeda | `-- ./bar/helga `-- ./foo |-- ./foo/alpha |-- ./foo/beta `-- ./foo/gamma 8 directories, 0 files # add a new final item. $ touch zebra # same command. $ tree --charset=ascii -af . . |-- ./bar | |-- ./bar/babushka | |-- ./bar/galeda | `-- ./bar/helga |-- ./foo | |-- ./foo/alpha | |-- ./foo/beta | `-- ./foo/gamma `-- ./zebra 8 directories, 1 file foo /のファイルがどのように追加のパイプラインブランチを取得するかを確認してください。このdiffコマンドは、ファイル自体が実際にまったく変わらない場合でも、これを違いとして表示します。 これは非常に私の目的には適していません。これを迂回または防止する方法を知っていますか?均一な分岐管を押したままにできますか?マニュアルtreeには、「最後」または「最終」項目の書式設定に関する言及はありません。

Admin

専用スペースを特定のフォルダに動的に制限する
bash
filesystems
mount
partition

専用スペースを特定のフォルダに動的に制限する

私は現在、Ubuntu 16.04でユーザーがファイルを登録してアップロードできるサーバーアプリケーションを構築しています。ユーザーがテラバイト単位のデータをアップロードするのを防ぐために、ユーザーディレクトリのサイズを必要に応じて制限したいと思います。 ユーザーフォルダは次のとおりです。いいえUnixユーザーのフォルダではなく、Webアプリケーションでユーザーのために作成したフォルダです。 これを行うには、サーバーアプリケーションで次のコマンドを呼び出します。 touch /storage/partitionFile truncate -s 1G /storage/partitionFile mke2fs -t ext4 -F /storage/partitionFile mount /storage/partitionFile /home/sizeRestrictedFolder これにより、マイストアのどこかにパーティションファイルが保存され、そのファイルがユーザーフォルダにマウントされます。 出力は次のとおりです(短くするために新しいパーティションのみを表示します)。df -h Filesystem Size Used Avail Use% Mounted on /dev/loop0 11M 108K 9.7M 2% /home/sizeRestrictedFolder これはすべてうまくいきますが、今は再起動後もこれらのインストールを維持し、最終的にはパーティションのサイズを増やしたいと思います。 再起動後のパーティション化の問題では、どのファイルシステムにマウントされるのかわかりません。たとえば、 user1 が/dev/loop0user2 にマウントされているように、動的に編集する/dev/loop1方法がわからないためです。/etc/fstab 私はパーティションのサイズ変更の問題でquotaとfdiskを試しましたが、結局両方は機能しませんでした。 私のアプローチは正しいですか?助けてくれてありがとう。

Admin

tmux:常にすべてのウィンドウのサイズを利用可能な最大サイズに調整するには?
bash
command-line
tmux

tmux:常にすべてのウィンドウのサイズを利用可能な最大サイズに調整するには?

tmux 3.0aを実行していて、より小さな解像度の端末を接続すると、より大きな端末も小さい端末にサイズ変更されます。 これはよく知られており(なぜデフォルトの動作に設定したのかわかりませんが)、解決策は次のとおりですc-b c-: :resize-window -A。tmux強制ウィンドウのサイズ変更、https://stackoverflow.com/questions/7814612/is-there-any-way-to-redraw-tmux-window-when-switching-smaller-monitor-to-bigger/61764869#61764869)。残念ながら、これは各ウィンドウ/ウィンドウで実行する必要があります。 このオプションを使用できますが、set-window-option -g aggressive-resize on私には違いはありません。 だから:常にすべてのウィンドウのサイズを利用可能な最大サイズに調整するには?

Admin

Bashスクリプト:ファイル循環
bash
shell-script
debian
ssh

Bashスクリプト:ファイル循環

いくつかの行を含むファイルがあります。 /snapshot/200 /snapshot/201 /snapshot/202 これで、各行とIFSループを使用していくつかの操作を実行しようとしています。 while IFS=' ' read -r test || [ -n "${test}" ]; do if ssh root@$TARGET "[ ! -d $test ]" then echo "${test}" fi done < $filelist ここでの問題は、1つの結果のみを取得し、ファイル全体を繰り返さないことです。これらの名前のディレクトリが存在しないため、ifステートメントは正確でなければなりません。 しかし、全体のif部分を削除して使用するだけ echo "${test}" ループが機能します。

Admin

親シェルhere-documentはdashのサブコマンドとは機能しませんが、bashが機能するのはなぜですか?
bash
debian
dash

親シェルhere-documentはdashのサブコマンドとは機能しませんが、bashが機能するのはなぜですか?

dash私はdebianstretchで実行しており、次のコマンド(および)はすべてbashbashに入力されます。決してユーザーとして実行されない ようですwhoamiテスト以下のコードのようにダッシュで表示されます。 $ sudo dash << 'end' > su test > whoami > end root $ sudo bash << 'end' > su test > whoami > end test

Admin

なぜ家族全体がバックアップされますか?
bash
backup
cp
read

なぜ家族全体がバックアップされますか?

私のホームディレクトリにあるいくつかのファイルをバックアップしたいと思います。それは 私のホームルートディレクトリにある単純なファイル ~/worthaving.txtにリストされている私の家のいくつかのディレクトリ worthaving.txt 例: cloud work/web work/python 私はこのスクリプトを作成しました: #!/bin/bash srce=/home/poor dest=/run/media/poor/backup mkdir -p $dest cp -v $srce/* $dest/ # simple files while IFS= read -r worth do mkdir -p $dest/$worth cp -Rv $srce/$worth $dest/$worth # dirs that matters done < "$srce/worthsaving.txt" しかし、私が欲しいものだけでなく、私の家全体をpoorバックアップルートの下のディレクトリに保存しました。 何が問題なの?

Admin