如何解决将 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
如果我手动输入它们,它会起作用,因此它必须符合我的语法。
谢谢
解决方法
我看到下面的链接在 $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 {} \;"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。