Linux bash:如何执行函数而不是同名命令

Linux bash:如何执行函数而不是同名命令,linux,bash,function,command,Linux,Bash,Function,Command,我将学习bash脚本,并编写了一个类似这样的小脚本用于测试: #!/bin/bash function time { echo $(date) } time 但是,函数不会执行,而是运行命令time 那么我需要做什么来执行函数呢 我正在运行bash4.2.45您需要将()添加到函数定义中。我不确定您是否需要那里的函数文本 应采取以下措施: #!/bin/bash get_time() { echo $(date) } get_time 已编辑:时间似乎是一个保留关键字,

我将学习bash脚本,并编写了一个类似这样的小脚本用于测试:

#!/bin/bash
function time {
    echo $(date)
}

time
但是,函数不会执行,而是运行命令
time

那么我需要做什么来执行函数呢

我正在运行bash4.2.45

您需要将
()
添加到函数定义中。我不确定您是否需要那里的
函数
文本

应采取以下措施:

#!/bin/bash

get_time() {
    echo $(date)
}

get_time

已编辑:时间似乎是一个保留关键字,因此更改了函数名

以运行与特殊关键字时间同名的函数,引用它,例如:

function time {
    echo "$(date)"
}

'time'

注意:函数定义中“需要”的
()
不是真的。
函数blah{
blah(){
都是有效的函数定义。请参阅。@AlexanderMills它避免了将
时间
解析为关键字,并将其转换为简单的命令字。您也可以对其他关键字执行此操作,如
if
[
((
等。如果您想了解更多信息,我建议您尝试阅读源代码。