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

bash脚本添加时间戳函数时报$'{ '语法错误如何解决

问题原因

你遇到的syntax error near unexpected token $'{ '报错,核心原因是脚本的换行符格式不兼容:

  • 若你曾在Windows系统下编辑过该脚本,Windows默认使用CRLF(\r\n)作为行尾换行标识
  • Linux环境下的Bash仅识别LF(\n)作为合法换行符,多余的\r回车符会被识别为非法语法字符,从而触发报错
解决方案

你可以任选以下任意一种方法转换脚本换行符为Linux兼容格式:

方法1:使用dos2unix工具转换(最便捷)

  1. 先安装工具(已安装可跳过):
    • CentOS/RHEL 系系统执行:yum install -y dos2unix
    • Debian/Ubuntu 系系统执行:apt install -y dos2unix
  2. 执行转换命令:dos2unix dothing.sh

方法2:使用sed命令直接清理行尾回车符

无需额外安装工具,直接执行:
sed -i 's/\r$//' dothing.sh

方法3:使用vim编辑器修改格式

  1. 用vim打开脚本:vim dothing.sh
  2. 按:进入命令模式,输入以下指令后回车:
    set fileformat=unix
  3. 输入:wq保存退出即可
验证方式

转换完成后执行cat -A dothing.sh查看文件内容,行尾仅显示$即为格式正常,如果行尾显示^M$说明还有未清理的Windows格式换行符。

你脚本本身的时间戳添加逻辑没有问题,完成格式转换后即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:36:03