Unix如何在bash中使用'command()'

时间:2016-11-07 14:47:25

标签: bash unix

也许这是一个总的noob问题。但我不知道如何使用它。 例如,当我有'stat'时,我可以使用'stat / home /'。但是当我输入stat()时,一个以'>开头的新行' 过来。谁能告诉我该怎么做?我只是好奇,因为有lstat(man lstat)但我不能使用它 - 系统将找不到它。但是有lstat()。

也许你可以帮我解决这个问题或者更好地提出问题。 (重新格式化我也知道我很喜欢这些东西)

编辑:我注意到你可以在括号前键入任何内容,它将从我上面说的新行开始。

2 个答案:

答案 0 :(得分:1)

在bash中,语法stat()启动了一个名为stat的函数的定义。你不要在shell中调用函数,只需使用与路径上定义的命令相同的语法。

lstat在手册页中列为lstat(2),这意味着手册页位于手册页的第2部分。该部分用于程序的OS调用,而不是shell命令。尝试查看手册页的SYNOPSIS部分以了解如何使用:如果有#include行,您可以非常肯定它适用于C程序员。

答案 1 :(得分:1)

不要将系统调用与该调用周围的可执行包装器混淆。例如,有关使用该命令的man 2 stat命令的文档,请参阅stat以获取有关名为man 1 stat的系统调用和man stat(或简称stat)的文档。系统调用以提供有关所请求文件的信息。

shell不提供对系统调用的直接访问;它的目的是运行其他程序。

在shell提示符下键入stat()时,将开始一个shell函数定义。 >表示shell正在等待定义的其余部分。例如:

$ foo()
> { echo hello; }
$ foo
hello