最新記事

exec $@ プロセスをフォアグラウンドにインポートする方法
shell
docker
exec

exec $@ プロセスをフォアグラウンドにインポートする方法

exec $@PID 1で始まったDockerエントリポイントプロセスを前景にどのようにインポートするかを知りたいです。 試してみましたが、うまくexec $@ &いきません。 マイユースケース:設定が完了したらプロセスを終了したいのですが、exec $@docker Entrypoint.shではプロセスがバックグラウンドに切り替わるため、私のコマンドは実行されません。 助けてください ありがとう、サム

Admin

#!/usr/bin/env が NAME=VALUE で中断されます。
shell
environment-variables
shebang

#!/usr/bin/env が NAME=VALUE で中断されます。

私はshebangの意味が何であるかを理解しようとしています。 次のスクリプトを作成できます。 #!/usr/bin/env bash if [ -z "$FOO" ] then echo "No FOO" else echo "$FOO" fi 私の環境ではなく$FOO、などのように実行すると予想通り「No FOO」が印刷されます。./foo.shbash foo.shenv bash foo.sh もちろんFOO=bar ./foo.sh、これを実行して印刷することもできますbar。 マニュアルenvページでは、次のような呼び出しを提供します。 env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] 次のように使用できます。 $ env FOO=bar bash foo.sh bar ただし、shebangでこの構文を使用しようとすると、次のようになります。 #!/usr/bin/env FOO=bar bash if [ -z "$FOO" ] then echo "No FOO" else echo "$FOO" fi その後、./foo.sh無期限に中断され、実行されません。 誰でも私にこれを説明できますか? Shebangが発生した場合は、コマンドをコピーし、引数リストの末尾にスクリプトパスを追加して実行すると仮定しましたが、この動作はそうではないことを意味します。

Admin

shell
grub
boot-loader
android

"linux" grubローダーはAndroidを検出できません

ブリスOSをインストールしました。 グラブローダーでは認識されません。だからGoogleで検索してみました。私は持っていますこれ。 そして一番下に次のコードを追加しました/etc/grub.d/40_custom。 menuentry "Android-x86" { set root='(hd0,2)' linux /android-4.0-RC1/kernel quiet root=/dev/ram0 androidboot.hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.0-RC1 SDCARD=/data/sdcard.img initrd /android-4.0-RC1/initrd.img} そして、次のコマンドを試してください。 root@istiak ~ # sudo chmod +x /etc/grub.d/40_custom #permission root@istiak ~ # sudo update-grub #updating grub Generating grub configuration file ... WARNING: Failed to connect to lvmetad. Falling back to device scanning. Found Windows 10 (loader) on /dev/sda1 done /dev/sda2 209616896 272531455 62914560 30G 7 HPFS/NTFS/exFAT 私の考えは私に何か問題があると思いますroot='(hd0,2)'。見つかりませんSDCARD=/data/sdcard.img。imgフォーマットファイルは3つだけです。これがまさに彼らです。 /dev/sda1 * 1026048 209615761 208589714 99.5G 7 HPFS/NTFS/exFAT /dev/sda2 209616896 272531455 62914560 30G 7 HPFS/NTFS/exFAT /dev/sda3 272533504 273694719 1161216 567M 27 Hidden NTFS WinRE /dev/sda4 274749438 625141759 350392322 167.1G 5 Extended /dev/sda5 274749440 623142911 348393472 166.1G 83 Linux /dev/sda6 623144960 625141759 1996800 975M 82 Linux swap / Solaris sda2Androidです。上記のように変更した後、Androidが発生しましたがアクセスできません。 間違い: sdcardイメージを作成していない場合は、3行目の「SDCARD = / data / sdcard.img」部分を削除してください(他のアイテムを削除しないように注意してください)。 (確かに私が作ったイメージなのに…見つかりませんね…線削除もしてみましたが同じエラーが発生しました。) 実際に再インストールをしようとしたところ、イメージファイルのインストール要求が全く入らないことを発見しました。 grub設定ファイルの作成中...警告:lvmetadに接続できません。デバイス検索に戻ります。 /dev/sda1でWindows 10(ローダー)が見つかりました。 blkid: istiak@istiak ~ $ blkid /dev/sda1: UUID="10C4F74DC4F73416" TYPE="ntfs" PARTUUID="cdead0a2-01" /dev/sda2: LABEL="Android-x86" UUID="1cf9767a-6334-4490-8ac7-d51aec2b0ac8" TYPE="ext4" PARTUUID="cdead0a2-02" /dev/sda3: UUID="0A122C29122C1BE7" TYPE="ntfs" PARTUUID="cdead0a2-03" /dev/loop0: TYPE="squashfs" /dev/loop1: TYPE="squashfs" /dev/loop2: TYPE="squashfs" /dev/loop3: TYPE="squashfs" /dev/loop4: TYPE="squashfs" /dev/sda5: UUID="5144d217-9d4a-4e8c-b8d5-31959274dd51" TYPE="ext4" PARTUUID="cdead0a2-05" /dev/sda6: UUID="b6f4d65c-46a0-4985-9ec3-dd0044257fcb" TYPE="swap" PARTUUID="cdead0a2-06" 私の現在のコード: #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry "Android-x86" { set root='(hd0,2)' linux /android-11.13/kernel quiet root=/dev/ram0 androidboot.hardware=generic_x86 acpi_sleep=s3_bios,s3_mode SRC=/android-11.13 initrd /android-11.13/initrd.img} 同じエラーが発生しますが。

Admin

Heredocに渡されたPythonスクリプトでパイプコンテンツを使用する
bash
shell
python
pipe
stdin

Heredocに渡されたPythonスクリプトでパイプコンテンツを使用する

私はここのドキュメントを知っています。標準入力に進みます。 here-docが標準入力へのパイプからのものよりも優先されることがわかります(下記参照)。 しかし、それを動作させる秘訣はありますか? おおむねスクリプトファイルの生成を避けたい。私は-cPythonにスイッチがあることを知っていますが、すべてを1行に入れたくありません。 echo values | python3 <