Win系统和Linux下编码的格式问题(syntax error near unexpected token)

本文介绍了解决Windows系统下编写的Shell脚本在Linux系统中运行时出现的'syntax error near unexpected token'错误的方法。该问题源于不同系统间的编码格式差异,文章提供了具体的解决方案。

原文出处:http://jingyan.baidu.com/article/9f63fb91d014b8c8410f0e7a.html

在Win系统下写的shell代码在Linux下运行有时会报syntax error near unexpected token,不用怕,这只是系统之间的编码格式问题,轻松几步就可以搞定:

看附件吧

 

 

 

 

从你提供的错误信息来看,这些问题通常是由于尝试在 Bash Shell 中直接输入了不适合命令行环境的内容(例如 SQL 语句、配置文件内容或其他非命令文本),导致语法错误。 ### 错误分析 1. `-bash: syntax error near unexpected token '('` - 这种错误通常出现在试图执行包含括号的字符串或命令时,Bash 遇到了意外的括号。 2. `uid=0(root): command not found` - 这表明你在命令前加上了一些无效的关键字或者变量赋值,比如 `uid=0(root)` 不是一个有效的命令前缀。 3. `CHARACTER: command not found` `SET: command not found` - 显然是把本应在 SQL 或者其他上下文中使用的关键词当作了 shell 命令来执行。 ### 解决办法 #### 1. 清理当前会话 如果你不小心粘贴了很多不适当的命令并且现在无法正常使用命令行,可以按以下步骤清理: - **Ctrl + C** 终止当前正在执行的命令。 - 输入 `reset` 来重置终端屏幕显示: ```sh reset ``` - 如果仍然有问题,关闭并重新打开一个新的 Xshell 会话窗口。 #### 2. 检查历史记录 检查之前的历史命令是否包含了非法指令,并清除它们: ```sh history | tail -n 20 # 查看最近的 20 条命令 # 根据需要删除特定编号的历史命令 history -d <command_number> ``` #### 3. 正确区分命令与脚本文档 当你想要执行一段复杂的脚本或代码块(如 SQL 脚本)时,请确保将其放在合适的位置而不是直接敲入命令行。你可以这样做: - **保存成文件再运行** - 把所有 SQL 内容保存到 `.sql` 文件中; - 使用 MySQL 客户端读取该文件并执行命令: ```sh mysql -u root -p < /path/to/your_script.sql ``` - **使用管道传递给解释器** - 直接通过管道将 SQL 语句传送给 MySQL 客户端: ```sh echo "CREATE DATABASE test;" | mysql -uroot -p ``` #### 4. 学习基本的 Shell 命令结构 了解一些基础的 Linux/Bash 命令及其参数用法有助于避免类似的问题发生。建议花点时间熟悉常用的命令格式选项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值