Linux UNIX:意外的文件结尾

Linux UNIX:意外的文件结尾,linux,unix,Linux,Unix,我有一个问题,编辑器报告没有问题,但当我在终端中运行它时,它报告:意外的文件结束 我要做的是获取它,这样当这个脚本运行时,它会更改权限,以便每个人都可以执行该文件 我正在Windows计算机上编写文件脚本: #!/bin/bash file=~\scripts\chmxtextfile.txt if [[ -e "$file" ]]; then {chmod ugo+x $file} elif [[ ! -e "$file" ]]; then echo "File doesn

我有一个问题,编辑器报告没有问题,但当我在终端中运行它时,它报告:意外的文件结束

我要做的是获取它,这样当这个脚本运行时,它会更改权限,以便每个人都可以执行该文件

我正在Windows计算机上编写文件脚本:

#!/bin/bash

file=~\scripts\chmxtextfile.txt

if [[  -e "$file"  ]];   
then {chmod ugo+x $file} 
elif [[  ! -e "$file"  ]];
then echo "File doesn't exist"
fi

{
之后需要空格,在
}
之前需要分号。在*nix上的文件路径是/分隔的,不\n不用麻烦检查是否存在,只需运行
chmod
。如果文件不存在,
chmod
将为您发出错误消息。您说您正在Windows上编写脚本,但标记为Linux和Unix。这是否意味着你在剧本中有CRLF行结尾,它们会引起悲伤?此外,反斜杠是Unix ish环境的常规用法,在Windows上可以使用
/
而不是
`。至少要小心使用反斜杠。注意
elif`可以是简单的
else
;只有在第一次和第二次测试之间文件的存在状态发生变化时,才会出现意外结果。编写的代码不需要分号;如果
然后
出现在行中,则需要使用它们。您应该在
chmod ugo+x“$file”
中双重引用文件名。