You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline:在Ubuntu机器脚本任务中写入带换行符的文件

在Azure Pipeline Ubuntu环境生成带换行符的文件解决方案

问题原因

你当前的Bash脚本里,echo命令默认不会解析双引号内的\n转义字符,只会将其作为普通文本写入文件,导致生成的内容里显示\n而非实际换行。

三种可行解决方法

方法1:使用echo -e解析转义序列

给echo加上-e参数,让它识别并处理\n这类转义字符:

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      cd $(PROJECT_DIRECTORY)
      echo -e "storePassword=$(keystore-password)\nkeyPassword=$(key-password)\nkeyAlias=$(key-alias)\nstoreFile=./upload-keystore.jks" > MyFile.txt
      echo 'David: cat MyFile.txt' && cat MyFile.txt

方法2:使用printf命令(更推荐,适配特殊字符场景)

printf默认支持转义序列,且对变量中的特殊字符处理更稳妥:

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      cd $(PROJECT_DIRECTORY)
      printf "storePassword=%s\nkeyPassword=%s\nkeyAlias=%s\nstoreFile=%s\n" "$(keystore-password)" "$(key-password)" "$(key-alias)" "./upload-keystore.jks" > MyFile.txt
      echo 'David: cat MyFile.txt' && cat MyFile.txt

方法3:使用Here-Document( heredoc)直接编写多行内容

这种写法最直观,无需转义换行符,直接按格式写入内容:

- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      cd $(PROJECT_DIRECTORY)
      cat > MyFile.txt << EOF
storePassword=$(keystore-password)
keyPassword=$(key-password)
keyAlias=$(key-alias)
storeFile=./upload-keystore.jks
EOF
      echo 'David: cat MyFile.txt' && cat MyFile.txt

内容的提问来源于stack exchange,提问作者david

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:45:56