私を狂わせる単純なbashシェルスクリプトがあります。私が望むのは、他のコマンドで使用する結果を返すコマンドを実行することです。最初のコマンドの結果は、空白を含むハードドライブの場所を返します。これが私が持っているものです...
# Get list of virtual machines. VMname will hold the address of the .vmx file
VMname=`./vmrun list`
echo $VMname
# Get list of snapshots
command="./vmrun listSnapshots "
command=$command"'"
command=$command$VMname
command=$command"'"
echo $command
snapshotList=`$command`
$VMname の周囲に一重引用符を追加しようとすると、左側にのみ追加されるようです。つまり、左側の単一引用符のみを追加します。私は何か愚かなことをしましたか?本当にクレイジーになりますね!
ベストアンサー1
必要なものは次のとおりです。
VMname=$(./vmrun list)
snapshotList=$(./vmrun listSnapshots "$VMname")
中間変数が不要な場合は、次のものもVMname
使用できます。
snapshotList=$(./vmrun listSnapshots "$(./vmrun list)")
$()
代わりに使用してください``
(電子を理解していない非常に古いシェルを使用しない限り)。構造のネストが$()
簡単になりました。