私はこの問題のためにスクリプトに本当にぶら下がっていました。パラメータを受け入れて結果を提供するにはスクリプトが必要ですが、空白があるため、最初の単語のみが表示されます。例えば。
cat open.sh
echo My name is $1
export start=`date +"%b %d %k:%M:%S %Y"`
[oracle@spiderman scripts]echo $start
Jul 01 3:03:18 2016
[oracle@spiderman scripts]$sh open.sh `echo $start`
The time is Jul
出力が必要です。The time is Jul 01 3:03:18 2016.
同じ出力を別の複雑なスクリプトに渡す必要があります。
答え1
$()
次のコマンド置換を使用する必要があります。date
export start=$(date +"%b %d %k:%M:%S %Y")
export end=$(date +"%b %d %k:%M:%S %Y")
そしてopen.sh
変化
echo The time is "$1" and end time is "$2"
(注:常に変数を引用してください。これ)
次のように引用したパラメータを使用してスクリプトを実行します。
$ sh open.sh "$start" "$end"
The time is Jul 01 20:24:03 2016 and end time is Jul 01 22:19:25 2016