执行脚本报错 #!/bin/bash s=0 for (( i=1; i<=100; i++ )) do s=$(( $s + $i )) done echo $s sh add.sh 报错: add.sh: 4: Syntax error: Bad for loop variable 代码没有错误,Ubuntu为了加快开机速度,用dash取代bash. 解决的方法:取消dash,使用bash: sudo dpkg-reconfigure dash 选择No选项.…
Linux Mint中写了一个简单的shell脚本,利用for..do..done结构计算1+2+3......+100的值,结果执行"sh -n xxx.sh"检测语法时总是报错,但在PC机上可正常运行: 脚本: #!/bin/bash #information PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH read -p "Please input a…
在linux下写了一个简单的shell,循环10次. test.sh #!/bin/bash ## ##循环10次 ## ; i<; i++)); do echo Good Morning ,this is $i shell program. done 执行:sh test.sh 报下面的错误. Syntax error: Bad for loop variable 在网上搜索了一下. 因为Ubuntu为了加快开机速度,用dash代替了传统的bash,所以我们这样执行就没问题. bash tes…
问题: 在MAC上写了一段shell脚本,放到Ubuntu上运行总是报下面这个错误,单步调试都是对的,就是直接运行会报错. bixiaopeng@ubuntu:~/package$ sh package.sh package.sh: 8: package.sh: Syntax error: "(" unexpected 原因: 兼容性问题,因为linux将sh默认指向了dash,而不是bash 解决: #在root下面执行 dpkg-reconfigure dash,选择no bixi…
这种错误只能说是坑,如果没有见到过,很可能就要摔里头.解决问题是重要的,但弄明白问题的来源,往往更为重要. 所以要先扯一下,换行和回车的历史遗留问题. 在计算机出现之前,有个玩意叫电传打字机.每秒钟可以打10个字符,但是在打完一行需要换行时,要用去0.2s. 这正好可以打2个字符,这段时间里如果有字符传过来,那么这些字符将被丢失. 很显然,要解决这个问题,最简单的办法就是浪费这个0.2s.同时,我们在写东西时,要把手换到下一行及每行的首位置,也就是说这是两个动作. 自然而然地,研发人员在每一行后…
出现此问题的原因,是由系统的兼容性引起的,linux下默认了指向dash而非bash. linux下Dash改Bash: 1.先查看是使用哪个shell ls -al /bin/sh 2.#如果是Dash可以用以下方法切回bash(选择NO) 方法一:sudo dpkg-reconfigure  dash 方法二:sudo ln-fs  /bin/bash   /bin/sh (感谢其他的前辈,这是之前从网上查找后,自己做的笔记,自己整理出来,作为我的成长之路的经历,写此博客是为了记录自己出现过…
从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell:其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash. ubuntu edgy是第一个将dash作为默认shell来发行的版本,这似乎是受了debian的影响.wiki 里面有官方的解释,https://wiki.ubuntu.com/DashAsBinSh,主要原因是dash更小,运行更快,还与POSIX兼容. 但目前存在的问题是,由于shell的更换…
cygwin下面写shell,运行出错:syntax error near unexpected token `$’do\r” 写shell,运行出错:syntax error near unexpected token `$’do\r” [问题] 在cygwin下,用notepad++写了个简单的shell脚本,内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 #!/bin/bash #remove *.bak in subfolder files echo 'remov…
Shell script fails: Syntax error: “(” unexpected google 一下. http://unix.stackexchange.com/questions/45781/shell-script-fails-syntax-error-unexpected The script does not begin with a shebang line, so the kernel executes it with /bin/sh. On Ubuntu, /bi…
错误:Syntax error on tokens, delete these tokens 出现这样的错误一般是括号.中英文字符.中英文标点.代码前面的空格,尤其是复制粘贴的代码,去掉即可.…