linux--shell错误:syntax error near unexpected token ‘('

这几天编写了几个简单的shell程序,然后都出现了syntax error near unexpected token ‘(‘

的错误,然后实在是检查不出错误;后面百度了才找到的原因:

之前错误的程序片段如下:

usr=$ (whoami)

dr=$ (pwd)

提示的错误如下:

syntax error near unexpected token ‘(‘

后面才知道原来是$ 与左括号之间多了一个空格,改正以后程序就正常运行了。

其实上面usr=$(whoami)等价于 usr=`whoami`

linux--shell错误:syntax error near unexpected token ‘('

时间: 2024-10-06 06:45:57

linux--shell错误:syntax error near unexpected token ‘('的相关文章

shell脚本启动语法错误syntax error near unexpected token '{

执行shell脚本时失败,报语法错误,但脚本内容检查正常 原因为该脚本是在非Linux系统下编辑之后放到系统执行的,文件模式类型非Linux系统匹配的模式类型. 查看文件的模式类型 显示文件的模式类型为 dos 修改文件的模式类型为Linux匹配的 unix 保存之后即可正常启动脚本. shell脚本启动语法错误syntax error near unexpected token '{ 原文地址:https://www.cnblogs.com/zjfjava/p/10708370.html

shell脚本错误:syntax error near unexpected token '$'\r''

linux下运行shell脚本出现错误:syntax error near unexpected token '$'\r'' 这是因为文件在编写时的回车是DOS的"\r\n",而正确的应该是"\n",所以需要将文件内所有的"\r\n"替换为"\n",如将1.sh修改另存为2.sh,有以下简单的方法: sed 's/\r//' 1.sh > 2.sh shell脚本错误:syntax error near unexpect

shell出现syntax error near unexpected token `<' 解决方法

最新在看一个shell资料时,按照教材,却出现如下错误,不能运行 如下,简单的脚本: #!/bin/bash cat |while read line do echo $line done < <(data.txt|awk '{print $0}') 运行时,却出现如下错误 [[email protected] shellcookbook]# sh while_test.sh while_test.sh: line 5: syntax error near unexpected token `

shell脚本syntax error near unexpected token `done&#39;

1.修改文件类型 执行: vi finddir.sh 输入 :set ff 如果fileformat=dos ,修改为unix: :set ff=unix 执行保存命令: :wq 2.删除隐藏字符 用命令vi -b 打开你的SHELL脚本文件,你会.发现每行脚本最后多了个^M 因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下用VC写的代码,行尾后的"^M"符号,表示的是符. 在Vim中利用替换功能就可以将"^M"

shell 脚本,在调试时,FOR循环那行代码,总是出现错误syntax error near unexpected token do(转)

这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n" 可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m 需要转换成linux/unix格式的"\n" 具体转换办法就是转换换行符 可以用sed命令处理一下文件,命令如下: sed 's/\r//' 原文件 >转换后文件 sed 命令的参数中 "代表决定引用参数,不允许参数中的值让shell解释,s代表替换 /后面跟的是被替换的内容,后面的//代表替换后的

linux的shell脚本报错“syntax error near unexpected token `”的解决

今天写了一个shell脚本,老报错检查了一下基本的语法并没有发现错误.后来经过百度解决掉了,现总结如下. 错误现象:执行shell脚本,老报错"syntax error near unexpected token `" 解决办法:vim -b example.sh打开文件,发现文件每一行的末尾多了一个^M,这个问题在使用vim example.sh查看是看不见的,只能通过报错来判断使用vim -b才能发现问题. 因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下

Linux中syntax error near unexpected token 错误提示解决方法

Linux中syntax error near unexpected token ... 错误提示有一般有两种原因: 1)window和Linux下换行符不一致导致 window下的换行和Linux下的换行不同,如果将window下编写的代码文件上传到Linux下,容易出现该错误提示.可用 vi -b 文件名 或者cat -v 文件名命令查看,如果是游云换行符引起的,则每行后面有^M,这时只要将每个^M去掉即可. 2)Linux指令之间没有空格隔开

运行shell脚本提示“syntax error near unexpected token for((i=0;i&lt;$length;i++))”

sh脚本如下: #!/usr/bin/env bash county="3 4 5 6 7 8 9 10 11 12 16 29 39 44 53 62 72 84 97 115 128 151 168 187 199 218 230 10079 10239 32478" array=($county) length=${#array[@]} for((i=0;i<$length;i++)) do $HIVE_HOME/bin/hive -e "select * fro

syntax error near unexpected token(关于跨平台非法字符(^M)的解决方法)

别人写了一个shell拿过来在linux试用,执行报错如下: 仔细查找了还是没找到错误,一直都是报syntax error near unexpected token `{ 网上搜索了一下,找到了端倪,现在简单整理如下: 现在可以判断给我脚本的这位仁兄很有可能是在windows平台上编写的.使用vim -b命令查看文件内容如下: 每一行多了一个^M有木有? 那么接下来就要搞清楚这个^M是什么东东? long long long ago .....  老式的电传打字机使用两个字符来另起新行.一个字