gpt4 book ai didi

linux - 在 VM 中使用 Invoke-AzVMRunCommand 运行脚本吗?传递参数问题

转载 作者:行者123 更新时间:2023-12-03 02:44:50 25 4
gpt4 key购买 nike

问题描述:当您将参数创建为对象并传递给 VM-Windows-PS 时,一切都很好,您可以使用 name=value,但在 Linux VM 上,情况并非如此,您只能得到值的顺序未知。

准备工作:

  • 来源:您的电脑:Windows:在 powershell 中登录 Azure。
  • 目标:Azure:拥有 Linux VM,在我的例子中是 ubuntu18。

代码:

echo '#!/bin/bash' >>.\msgtst.sh
echo 'echo test: $1 $2 $3 $4 $5 $6' >>.\msgtst.sh
$Script_paramz = @{"lgs" = "SARB"; "Event"="a1001"; "LogName"="xSystem" }
Invoke-AzVMRunCommand -ResourceGroupName VMResourceGroup -VMName LinuxVMName -ScriptPath ".\msgtst.sh" -CommandId RunShellScript -Parameter $Script_paramz -Verbose

尝试:

$Script_paramz = @{"lgs" = "ARB"; "Event"="1001"; "LogName"="System" }

[标准输出]测试:ARB系统1001

$Script_paramz = @{"lgs" = "SARB"; "Event"="a1001"; "LogName"="xSystem" }

[标准输出]测试:SARB xSystem a1001

$Script_paramz = @{"lgs" = "1SARB"; "Event"="C1001"; "LogName"="bSystem" }

[标准输出]测试:1SARB bSystem C1001

$Script_paramz = @{"par1" = "val1"; "par2"="val2"; "par3"="val3"; "par4"="val4"; "par5"="val5"; "par6"="val6" }

[标准输出]测试:val3 val6 val1 val2 val4 val5

Powershell 输出:$Script_paramz

Name                           Value
---- -----
par3 val3
par6 val6
par1 val1
par2 val2
par4 val4
par5 val5

有人能解决这个问题吗?

编辑:回答我如何解决这个问题,仍然想知道是否有可能正确查看参数名称。

$Script_paramz = @{"par1"= "par1=val1"; “par2”=“par2=val2”; “par3”=“par3=val3”}

#!/bin/bash
par2=''; par1=''; par3='';
for var in "$@"
do
IFS='=' read -r -a array <<< "$var"
export "${array[0]}"="${array[1]}"
done
echo $par1, $par2, $par3

[标准输出] val1、val2、val3

最佳答案

$Script_paramz 是一个哈希表。 HashTable 实现中默认不保留顺序。您可以尝试的一种方法是使用 Powershell HashTable 中的 OrderedDictionary .

$Script_paramz = [ordered]@{"par1" = "val1"; "par2"="val2"; "par3"="val3"; "par4"="val4"; "par5"="val5"; "par6"="val6" }

所以 powershell 中的结果将是:

PS C:\Users\fielu> echo $Script_paramz 

Name Value
---- -----
par1 val1
par2 val2
par3 val3
par4 val4
par5 val5
par6 val6

关于linux - 在 VM 中使用 Invoke-AzVMRunCommand 运行脚本吗?传递参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59330065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com