Shell 在tcsh中打开最近的文件

Shell 在tcsh中打开最近的文件,shell,ls,tcsh,Shell,Ls,Tcsh,因此,我正在尝试创建一个别名,它将使用我们工作室的应用程序在directpry中打开最新的文件 我通过以下方式获取最新文件: ls -t .ext | head -1 当我运行该行时,这很好,但如果我尝试以下任一操作: echo "ls -t .ext | head -1" app "ls -t .ext | head -1" 我将返回此文件,而不是打开文件: ls -t <all the files in the directory> | head -1 ls-t |头-1

因此,我正在尝试创建一个别名,它将使用我们工作室的应用程序在directpry中打开最新的文件

我通过以下方式获取最新文件:

ls -t .ext | head -1
当我运行该行时,这很好,但如果我尝试以下任一操作:

echo "ls -t .ext | head -1"
app "ls -t .ext | head -1"
我将返回此文件,而不是打开文件:

ls -t <all the files in the directory> | head -1
ls-t |头-1
有什么想法吗?非常感谢。

试试看

app `ls -t .ext | head -1`

这两种方法中的任何一种都会获取
头的输出,并将其替换到命令行中的相应位置。

试试看

app `ls -t .ext | head -1`


其中任何一个都会获取
head
的输出,并将其替换到命令行中。

执行此操作时:
app ls-t.ext | head-1
应用程序将“ls-t.ext | head-1”理解为命令行参数,而不是该命令的结果。您可能希望将“ls…”的结果分配给一个变量,然后使用该变量传递给app。它不会打开文件,而是执行ls,但不会通过管道将其发送到head。问题是,echo$LastFile返回:ls-t.ext | head-1,而不是我将命令放入()它返回:ls-t file1 file2 file3 | head-1您可能无法作为别名执行此操作,但我没有可以测试的tcsh。让它成为一个脚本,正如下面的@twalberg所示,使用命令替换(我认为只有在tcsh中才使用backtics)。祝您好运。当您这样做时:
app ls-t.ext | head-1
应用程序将“ls-t.ext | head-1”理解为命令行参数,而不是该命令的结果。您可能希望将“ls…”的结果分配给一个变量,然后使用该变量传递给app。它不会打开文件,而是执行ls,但不会通过管道将其发送到head。问题是,echo$LastFile返回:ls-t.ext | head-1,而不是我将命令放入()它返回:ls-t file1 file2 file3 | head-1您可能无法作为别名执行此操作,但我没有可以测试的tcsh。让它成为一个脚本,正如下面的@twalberg所示,使用命令替换(我认为只有在tcsh中才使用backtics)。祝你好运