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

Bash技巧:如何在单引号包裹的字符串中输出变量?

解决Bash变量嵌入单引号字符串的问题
  • 如果是直接执行cp命令,不用纠结单引号,直接用双引号包裹完整路径即可,Bash会自动处理带空格的文件名:

    cp "/path/to/file/$NEWFILE" /path/to/another/file
    

    这种方式最安全,还能处理除了空格之外的其他特殊字符。

  • 如果确实需要生成带单引号包裹路径的命令字符串(比如要保存到变量或脚本里),有两种简单方法:

    1. 用双引号包裹整个命令,里面的单引号作为普通字符保留,变量会被正常解析:

      cmd="cp '/path/to/file/$NEWFILE' /path/to/another/file"
      # 查看生成的命令
      echo "$cmd"
      

      执行后会输出你想要的格式:cp '/path/to/file/sunny fields.jpg' /path/to/another/file

    2. 用printf构造命令,适合更复杂的拼接场景:

      printf "cp '/path/to/file/%s' /path/to/another/file\n" "$NEWFILE"
      

你之前尝试的cp "'/path/to/file/$NEWFILE'" /path/to/another/file之所以不行,是因为把带单引号的路径整个用双引号包起来了,这会让cp把单引号当成文件名的一部分,自然找不到对应的文件。

内容的提问来源于stack exchange,提问作者K S M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:46:01