将 Powershell 中的变量扩展为 Linux 命令
Expanding variables in Powershell, to Linux commands
在以下 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 文件服务器)扩展变量 $Project_number 和 $Project_code 在 plink 命令中。
目前他们没有,我收到错误消息:
plink : setfacl: /FILES/projects/ : No such file or directory
如果我手动输入它们,它会起作用,因此它必须符合我的语法。
谢谢
我看到下面的 link 在 $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 路径上的引号并转义 space。像这样:
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 {} \;"
在以下 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 文件服务器)扩展变量 $Project_number 和 $Project_code 在 plink 命令中。
目前他们没有,我收到错误消息:
plink : setfacl: /FILES/projects/ : No such file or directory
如果我手动输入它们,它会起作用,因此它必须符合我的语法。
谢谢
我看到下面的 link 在 $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 路径上的引号并转义 space。像这样:
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 {} \;"