将 Powershell 中的变量扩展为 Linux 命令

在以下 Powershell 脚本中:

$Project_number = Read-Host -Prompt 'Input your Project Name ie. 02XXX'
$Project_code = Read-Host -Prompt 'Input your Project Code in capita letters ie. CRE'

plink -load profile1 -batch 'setfacl -Rm d:g:user1:rwX,g:user1:rwX "/FILES/projects/$Project_number $Project_code" && find "/FILES/projects/$Project_number $Project_code" -maxdepth 1 -exec setfacl -m d:g:user1:r-X,g:user1:r-X {} \;'

如何使 plink(通过 SSH 连接到 Linux 文件服务器)扩展 plink 命令中的变量 $Project_number$Project_code

目前他们没有,我收到一个错误:

plink : setfacl: /FILES/projects/ : No such file or directory

如果我手动输入它们,它会起作用,因此它必须符合我的语法。

谢谢

RERR555 回答:将 Powershell 中的变量扩展为 Linux 命令

我看到下面的链接在 $Project_number 和 $Project_code 之间有空格

plink -load profile1 -batch 'setfacl -Rm d:g:user1:rwX,g:user1:rwX "/FILES/projects/$Project_number $Project_code" && find "/FILES/projects/$Project_number $Project_code" -maxdepth 1 -exec setfacl -m d:g:user1:r-X,g:user1:r-X {} \;'

你试过没有那些空格吗?

,

谢谢我能够弄清楚,只需要使用双引号,删除setfacl路径上的引号并转义空格。像这样:

plink -load profile1 -batch "setfacl -Rm d:g:user1:rwX,g:user1:rwX /FILES/projects/$Project_number\ $Project_code && find /FILES/projects/$Project_number\ $Project_code -maxdepth 1 -exec setfacl -m d:g:user1:r-X,g:user1:r-X {} \;"
本文链接:https://www.f2er.com/2018.html

大家都在问