.bash_profile 中的语法错误意外的文件结尾

亨特·S·迪西科

运行 MacOS High Sierra 10.13.5

再会!今天,我尝试在我的脚本中编写一个脚本,.bash_profile以允许我使用单个命令调用 Sublime Text,sublime.

这是我用我有限的 bash 知识以及一些研究制作的脚本:

sublime_open()     # Function which opens the first argument as a text file in Sublime.
{
    open -a /Applications/Sublime\ Text.app < $1.txt;
}

export -f sublime_open;

sublime_test()     # Function which will open first argument as a text file in Sublime,
{                  # creating one if it does not exist in the current directory.
    if [ -e "$1" ];
    then sublime_open "$1"
    else
    touch "$1".txt
    sublime_open("$1")
    fi
}

export -f sublime_test
alias sublime="sublime_test"
export sublime  


为了可读性,我将函数分成了两部分。


预期行为:

sublime foo 打开一个 Sublime 实例到文件 foo.txt,如果该文件不存在则创建该文件。


观察到的行为:

Bash 返回:

第 29 行:语法错误:文件意外结束

请注意,第 29 行是文件最后一行之后的行,该行不存在。


解决方案的尝试:
到目前为止,我已经在这里这里搜索了解决方案
我试过了:

  • 复制到一个新的 bash 配置文件并删除旧的以删除“ghost”字符
  • 在我的 .bash_profile 上运行dos2unix
  • 自己解析脚本寻找个别错误,问题似乎发生在该sublime_open()部分。

对不起,如果我的脚本是基本的或不知情的,这是我第一次尝试编写具有这种行为的脚本。我欢迎超出我的问题范围的帮助或提示。

提前致谢!

编辑:根据@jwodder 的解决方案修复了误用的 heredoc 以及根据@codeforester 的解决方案不正确的函数调用。

编辑 2:如果您正在为同一问题寻找更优雅的解决方案,请查看这个非常有用的要点。

乔维德

问题是这一行:

open -a /Applications/Sublime\ Text.app << $1.txt;

我假设您这样做的意思是$1.txt在标准输入上将内容提供给 Sublime Text。但是,这将通过一个来完成<,而不是两个。使用两个<,你会得到一个heredoc,这意味着 bash 将寻找包含 just 的下一行$1.txt,并将使用中间的所有行作为 Sublime Text 的输入。由于文件在 bash 找到仅包含 的行之前结束$1.txt,您会收到“意外的文件结尾”错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

语法错误:.bash_profile文件意外结束

来自分类Dev

语法错误:.bash_profile文件意外结束

来自分类Dev

bash_profile语法错误

来自分类Dev

语法错误:bash中的文件意外结束错误

来自分类Dev

linux + .bash_profile +正确的PATH语法

来自分类Dev

Bash文件-/ etc / profile与〜/ .bash_profile文件

来自分类Dev

无法保存〜/ .bash_profile文件

来自分类Dev

在bash_profile中设置路径

来自分类Dev

.bash_profile中`export PATH =…`的含义

来自分类Dev

如何使.tty在.bash_profile中工作

来自分类Dev

在macOS 10.13中还原.bash_profile

来自分类Dev

在Mac上在.bash_profile中扭动

来自分类Dev

bash:语法错误:文件意外结束

来自分类Dev

如何使OS X读取.bash_profile而不是.profile文件

来自分类Dev

为什么要在〜/ .bash_profile中添加〜/ .profile?

来自分类Dev

为什么要在〜/ .bash_profile中添加〜/ .profile?

来自分类Dev

文件意外结束-bash_profile的新功能

来自分类Dev

git-completion.bash和.bash_profile错误

来自分类Dev

如何在OSX的.bash_profile中获取外部文件?

来自分类Dev

Bash配置文件语法错误:文件意外结束

来自分类Dev

touch:.bash_profile:没有这样的文件或目录

来自分类Dev

如何从Finder显示和访问.bash_profile文件

来自分类Dev

是否有PostgreSQL配置文件(如.bash_profile)

来自分类Dev

touch:.bash_profile:没有这样的文件或目录

来自分类Dev

别名给出:~/.bash_profile: 没有那个文件或目录

来自分类Dev

Bash:语法错误:“(”意外

来自分类Dev

在.bash_profile中创建运行Shell脚本的别名

来自分类Dev

.bash_profile sed:RE中未定义\ 1

来自分类Dev

在.bashrc或.bash_profile中设置环境变量

Related 相关文章

热门标签

归档