运行$(myfunction)返回“ <文件名>:找不到命令”

初学者

我今天才刚开始使用bash编程,有一件事我不知道...这是我写的脚本:

#!/bin/bash

FILE=test.txt

test_file () {
  if [ -e "$FILE" ]; then
     echo "$FILE exists"
  else
     echo "$FILE does not exist"
     return 1
  fi

  return
}

$(test_file)

当我运行脚本(命名为test)时,它会输出以下错误消息:

"./test: line 16: test.txt: command not found"

令我惊讶的是,我对“功能部件”的建议超过了,并用exit代替return,如下所示:

#!/bin/bash

FILE=test.txt

#test_file () {
  if [ -e "$FILE" ]; then
     echo "$FILE exists"
  else
     echo "$FILE does not exist"
     exit 1
  fi

  exit
#}

#$(test_file)

它运行没有任何抱怨。即使我将带有函数调用的函数粘贴/粘贴到其他函数中的另一个脚本中(也可以正常工作),它也可以工作。

我想念什么?

切普纳

您试图将函数输出作为命令运行。只需放下$(...)

#!/bin/bash

FILE=test.txt

test_file () {
  if [ -e "$FILE" ]; then
     echo "$FILE exists"
  else
     echo "$FILE does not exist"
     return 1
  fi

  return
}

test_file

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

返回模型文件名的命令

在Linux终端中找不到UTF-8文件名返回

运行某些命令时遇到“系统找不到指定的文件”

Boxfuse运行命令在application.properties中找不到文件

运行bash文件的状态:日期:找不到命令

虽然找不到循环返回文件的命令

循环运行命令时更改输出文件名

查找在-exec命令上返回成功的文件名

如何仅从find命令返回文件名?

如何遍历ls命令返回的某些文件名?

如何使Shell识别由`ls -A`命令返回的文件名,并且这些文件名包含空格?

Bash:变量赋值中找不到命令且文件名太长

将文件名传递给变量时找不到命令错误

无法打开“文件名”:找不到文件(文件:<错误的文件路径>/文件名)

bash:文件:找不到命令

使用可变文件名时找不到文件

找不到文件 - 使用 e:\ 命令通过 CMD 运行位于闪存驱动器上的文件

找不到返回的文件或目录,但是bash命令中没有提到文件或目录?

尝试使用 javac 通过命令行编译类文件返回“找不到文件”

在每个文件上运行命令,其标志参数取决于文件名

“ sqlplus”:使用docker exec运行命令时,在$ PATH中找不到可执行文件

为什么Python命令“ subprocess.Popen”找不到要运行的jar文件?

在命令行上运行节点 js 文件时找不到模块

sudo:./ <SomeBinary>:从安装的文件夹运行时找不到命令

在dcm4che中为dcmqrscp运行示例命令,找不到什么文件?

无法从WSL bash中的批处理文件运行Homebrew应用程序(找不到命令)

在脚本文件中运行定义的函数时找不到命令

运行Flutter命令时找不到PowerShell可执行文件

通过C#中的“处理”模块运行命令时,系统找不到指定的文件