Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么';不要使用';打开';Unix命令?_Macos_Shell_Terminal_Jedit - Fatal编程技术网

Macos 为什么';不要使用';打开';Unix命令?

Macos 为什么';不要使用';打开';Unix命令?,macos,shell,terminal,jedit,Macos,Shell,Terminal,Jedit,我最近在Mac OS 10.6系统上安装了jEdit。我希望能够像运行emacs一样在终端中运行jEdit,即“emacs FILE.NAME”。我的计划是写一个脚本jedit.sh包含 touch $1 open -a /Applications/jEdit.app $1 …其中参数是文件名。奇怪的是,jEdit被打开了,但只打开了默认的新文件,而不是所需的文件。如果我将“jEdit.app”替换为任何其他应用程序,比如“TextEdit.app”,它将打开所需的文件 有什么我遗漏的吗?为什

我最近在Mac OS 10.6系统上安装了jEdit。我希望能够像运行emacs一样在终端中运行jEdit,即“emacs FILE.NAME”。我的计划是写一个脚本jedit.sh包含

touch $1
open -a /Applications/jEdit.app $1
…其中参数是文件名。奇怪的是,jEdit被打开了,但只打开了默认的新文件,而不是所需的文件。如果我将“jEdit.app”替换为任何其他应用程序,比如“TextEdit.app”,它将打开所需的文件


有什么我遗漏的吗?为什么在使用“open”命令时,jedid的行为与其他应用程序不一样?我如何解决这个问题?

首先,“open”不是一个标准的UNIX命令(我假设它是Mac OS X特有的)

此外,jEdit是用Java编写的,所以我假设jEdit.app只是一个包装器,它启动Java虚拟机来执行jEdit.jar(它运行
/path/to/Java-jar/path/to/jEdit.jar
或类似的东西,可能还有额外的内存使用选项等)

在我的Ubuntu系统上,jedit包装器脚本传递我在命令行中提到的任何文件,jedit有效地使用它,因此问题不在于jedit应用程序本身

结论:看来jEdit.app没有使用您提供的参数将其传递给java命令行


作为一种解决方案,尝试从脚本中以
java-jar/path/to/jedit.jar“$@”
的形式启动它(当然也不需要
touch
行)。

首先,“open”不是一个标准的UNIX命令(我假设它是Mac OS X特有的?)

此外,jEdit是用Java编写的,所以我假设jEdit.app只是一个包装器,它启动Java虚拟机来执行jEdit.jar(它运行
/path/to/Java-jar/path/to/jEdit.jar
或类似的东西,可能还有额外的内存使用选项等)

在我的Ubuntu系统上,jedit包装器脚本传递我在命令行中提到的任何文件,jedit有效地使用它,因此问题不在于jedit应用程序本身

结论:看来jEdit.app没有使用您提供的参数将其传递给java命令行


作为一种解决方案,尝试从脚本中以
java-jar/path/to/jedit.jar“$@”
的形式启动它(这样就不需要使用
触摸
行)。

转到实用程序>全局选项>常规

取消选中启动时还原以前打开的文件(在此之前,我确保选中了“在命令行上指定的包含文件名…”)


我知道,这很奇怪,但这对我来说很有效(mac os x snow leopard、jedit 4.3.2、java 1.6.0_22)

转到实用程序>全局选项>常规

取消选中启动时还原以前打开的文件(在此之前,我确保选中了“在命令行上指定的包含文件名…”)


我知道,这很奇怪,但这对我来说很有效(mac os x snow leopard、jedit 4.3.2、java 1.6.0_22)

这对我来说在jedit 5.1.0上很有效:

touch foo
open -a /Applications/jEdit.app foo

这在jEdit 5.1.0上适用于我:

touch foo
open -a /Applications/jEdit.app foo

我不知道jEdit,但如果它传递了一个不存在的文件名,它可能不会创建新文件。然后需要触摸
。但我会把它当作x的
;做[-e“$x”]| |触摸“$x”;完成
,以便不更改现有文件的修改时间并支持多个命令行参数。情况并非如此。杰迪特将把一个新的空缓冲区和文件关联起来。当你保存文件时,它会在那时创建它。我不知道jEdit,但如果它传递了一个不存在的文件名,它可能不会创建新文件。然后需要触摸
。但我会把它当作x的
;做[-e“$x”]| |触摸“$x”;完成
,以便不更改现有文件的修改时间并支持多个命令行参数。情况并非如此。杰迪特将把一个新的空缓冲区和文件关联起来。当您保存文件时,它将在此时创建该文件。