我有窗口,使用Cygwin,试图JAVA_HOME永久设置我的.bashrc文件.
.bashrc中:
export PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME=$JAVA_HOME:"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_05"
Run Code Online (Sandbox Code Playgroud)
.bash_profile文件:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)
运行cygwin:
-bash: $'\377\376if': command not found
-bash: $'then\r': command not found
: No such file or directorysu//.bashrc
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: syntax error near unexpected token `fi'
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: `fi'
Run Code Online (Sandbox Code Playgroud)
我不确定我是从一个专门针对另一个系统的教程中获取命令,还是我错过了一个步骤.或者空格导致我的命令无法正常运行.
我已经查看了多个类似的问题,但我没有找到一个问题确切存在我的错误.
我的家乡之路:
$ echo $HOME
/cygdrive/c/Users/jhsu
$ echo ~
/cygdrive/c/Users/jhsu/
Run Code Online (Sandbox Code Playgroud)
所以我认为文件应该放在正确的位置.
如果我输入bash -x选项,它将显示所有行.但脚本将执行正常.
我该如何逐行执行?我可以看到它是否做了正确的事情,或者我中止并修复了这个bug.read每一行都有相同的效果.
在以下脚本中,我收到一个错误:
语法错误:意外的文件结束
这个错误是什么我可以恢复它?它指向调用函数的行.
#!/bin/sh
expected_diskusage="264"
expected_dbconn="25"
expected_httpdconn="20"
expected_cpuusage="95"
#expected_fd="100"
httpdconn=`ps -ef|grep -i httpd|grep -v grep|wc -l` #httpd connections
cpu_usage=`ps aux|awk 'NR > 0 { s +=$3 }; END {print s}'`
disk_usage=`df -h|awk {'print $2'}|head -n3|awk 'NF{s=$0}END{print s}'`
#db_connections=`mysql -uroot -pexxxxxx -s -N -e "show processlist"|wc -l`
db_connections=6
cld_alert()
{
nwconn=$1
cpu_usage=$2
disk_usage=$3
db_connections=$4
message=$5
`touch /tmp/alert.txt && > /tmp/alert.txt`
date=`date`
echo -e "$date\n" > /tmp/alert.txt
echo -e "$message" >> /tmp/alert.txt
path="/proc/$httpd/fd/";
cd $path
tfd=`ls -l|wc -l`;
sfd=`ls -ltr|grep sock|wc -l`; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Makefile,它将列出a.cpp,b.cpp和ch文件包含的所有头文件.但是,我得到了意外EOF的错误.类似的问题总是由行终止符引起,就像他们在EOL中使用CRLF而不是LF.但是,我的文本编辑器设置为使用LF,我通过删除所有EOL重新检查并重新添加.不幸的是,错误仍然存在.以下是代码:
#!/bin/bash
list-header:
for file in a.cpp b.cpp b.h
do
echo "$file includes headers: "
grep -E '^#include' $file | cut -f2
done
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
for file in "Bigram.cpp client.cpp Bigram.h"
/bin/sh: -c: line 1: syntax error: unexpected end of file"
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
我尝试做脚本:
#!/bin/bash
IP='192.168.1.1'
fping -c1 -t300 $IP 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]
then
echo "Host found"
else
echo "Host not found"
fi
Run Code Online (Sandbox Code Playgroud)
我把它转过来:
pi@raspberrypi ~ $ sh /home/pi/sh/test.sh
/home/pi/sh/test.sh: 9: /home/pi/sh/test.sh: Syntax error: "fi" unexpected (expecting "then")
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?
W/hen我运行以下代码片段
#!/bin/bash
if [ "foo" = "foo" ];
then
echo "true"
else
echo "false"
fi
echo "end"
Run Code Online (Sandbox Code Playgroud)
我明白了
sfm_write_buffer_test.sh: line 9: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
这没有任何意义.echo语句工作正常,但遇到if语句时会出现上述错误.
我收到意外的文件错误结束.我不确定如何解决它.
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export PS1='\[\e[0;32m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'
export LS_COLORS='di=35;1'
alias la='ls -lah'
alias cdu='cd /home/hzhang/primary'
#module load gnu-compilers/4.7.0
#module load mvapich3/gnu/1.7
.ls /opt/intel/Compiler/11.1/072/bin/ifortvars.sh intel64
#PATH=$PATH:/home/hzhang/primary/over2.2e/bin_dp:/home/hzhang/primary/foiltest
PATH=$PATH:/opt/overflow/intel/serial/bin_dp/:/home/hzhang/primary/chimera2.1/bin_dp/:/u/primary/hzhang/pegasus/bin_dp
export PATH
ulimit -s unlimited
Run Code Online (Sandbox Code Playgroud) 我需要运行一个系统命令,该命令将转到目录并删除不包含文件的子目录(如果存在).我编写了以下命令来执行此操作:
system("cd /home/faizan/test/cache ; for i in *\; do if [ -d \"$i\" ]\; then echo \$i fi done");
Run Code Online (Sandbox Code Playgroud)
上面的命令不断引发语法错误.我尝试了多种组合,但仍然不清楚这应该如何.请建议.
bash ×7
linux ×2
sh ×2
shell ×2
command-line ×1
cygwin ×1
if-statement ×1
makefile ×1
newline ×1
perl ×1
scripting ×1
syntax-error ×1