nohupモードで実行するときにスクリプトからコマンドを読み取るための値を提供する方法。前任者。体に

nohupモードで実行するときにスクリプトからコマンドを読み取るための値を提供する方法。前任者。体に

readスクリプトに2つのコマンドがあり、nohupモードで実行する必要がある場合は、echoコマンドを使用してどのように値を提供できますか?

例えば。スクリプト:

#!/bin/sh 
echo "/n read the value1" 
read info1 
echo "/n read the value2" 
read info2
 echo "$info1 $info2">>log.txt 

このモードを実行する必要があり、nohup読み取る値をどのように提供できますか?

ベストアンサー1

これは実際に可能です。次のことができます。

nohup sh -c "printf 'foo\nbar\n' | myScript.sh"

fooこれは入力に渡されますbar


しかし、これをしないでください。ただ使用しないでくださいread。実は正しい理由さえ思い出せません。一度readスクリプト内で使用されます。これが必要な極端なケースがあると確信していますが、可能であればこれを避けるべきです。ユーザーにデータを入力するように要求するのは面倒で、エラーが発生しやすく、スクリプトで自動化することは不可能です。

したがって、コマンドラインからデータを読み取るようにスクリプトを変更するだけです。

#!/bin/sh 
info1="$1"
info2="$2"
 echo "$info1 $info2">>log.txt 

次に、目的のパラメータを引数として使用してスクリプトを実行します。

myScript.sh foo bar

または

myScript.sh 'this one has spaces!' bar

おすすめ記事