如何在Bash脚本中访问Secure File?解决Agent.TempDirectory报错
问题解决方法
错误原因
你在非内联Bash脚本里使用了Azure DevOps管道的表达式语法$(Agent.TempDirectory),Bash会将$(...)识别为要执行的命令,因此找不到Agent.TempDirectory这个命令。另外,Bash中引用环境变量不需要$env:前缀,这也是需要修正的点。
两种修正方案
方案1:改用Bash环境变量引用临时目录
Azure DevOps会把预定义管道变量转换为大写的环境变量,变量名中的点会替换为下划线,所以Agent.TempDirectory对应Bash环境里的$AGENT_TEMPDIRECTORY。同时去掉$env:前缀,直接引用环境变量:
sf auth jwt grant --username $USERNAME_BAUQA --jwt-key-file $AGENT_TEMPDIRECTORY/mySecureFile.key --client-id $CLIENTID_BAUQA --instance-url $INSTANCE_URL_BAUQA
方案2:直接使用Download Secure File任务的输出路径(更可靠)
Download Secure File任务会自动将下载后的文件路径输出到$(mySecureFile.secureFilePath)变量中,对应Bash环境的$MYSECUREFILE_SECUREFILEPATH,直接使用这个变量可以避免手动拼接路径出错:
sf auth jwt grant --username $USERNAME_BAUQA --jwt-key-file $MYSECUREFILE_SECUREFILEPATH --client-id $CLIENTID_BAUQA --instance-url $INSTANCE_URL_BAUQA
内容的提问来源于stack exchange,提问作者user20850916
相关产品推荐
相关产品推荐

