【问题标题】:Bash or tsch command without file extensions [closed]没有文件扩展名的 Bash 或 tcsh 命令 [关闭]
【发布时间】:2021-02-09 01:22:42
【问题描述】:

我是脚本新手。在查看前雇员的 R 代码时,有一行他们调用命令行。行/目的不是我知道如何在线搜索的东西。任何帮助表示赞赏。

有问题的代码行:
/folder1/folder2/folder3 -s file_1_name -n file_1_name -e file_2_name > file_1_name.log 2>&1

注意事项:
语法是 bash(或派生自 bash,2>&1),但当我使用命令行检查使用的 shell 时,它会显示 tcsh(例如重定向 >&,没有数字)。\

文件名(上图)只是名称,而不是扩展名。示例:名为“ex.sch”的文件然后file_1_name 将是“ex”。代码行中唯一的扩展名是生成的日志文件。

文件是 .sch 文件。根据this site,这些是用于原理图的,尽管我非常怀疑它们是什么。

【问题讨论】:

  • /folder1/folder2/folder3 可能是脚本名称(所以folder3 可能不是文件夹?)。我们无法知道关于文件、它们的扩展名或这个 shell 脚本如何处理它的参数的任何事情......因为它们就是这些,arguments。如果它们碰巧对应于文件名(或接近它们),那很方便,但我们在这里无法知道。 2>&1 是 bash 将 stderr 重定向到 stdout;这是为了让所有输出(正常的标准输出和异常的标准错误)都进入同一个输出文件。
  • 据我们所知,它们是.sch 文件的事实是一个红鲱鱼。
  • 我不知道你的问题是什么。
  • 您的 shell 可能是 csh,但如果您在脚本中找到这行代码(脚本真的以 #!/bin/tcsh 开头还是 tcsh 只是您的个人外壳?)。在 Unix 下,通常不需要文件扩展名,它只是对人类的帮助,没有程序也可以工作。我不确定是否理解您的确切问题:命令是否失败?
  • @r2evans:事实证明你是对的。该文件没有任何扩展名,所以我认为它是一个文件夹。 CLI 新手,不知道“ls”命令中的绿色文本表示可执行。

标签: bash shell scripting tcsh


【解决方案1】:

线路/目的不是我知道如何在线搜索的东西。 [...]

有问题的代码行:

/folder1/folder2/folder3 -s file_1_name -n file_1_name -e file_2_name > file_1_name.log 2>&1

解释为 Bash 命令行,即执行程序或脚本/folder1/folder2/folder3,将六个命令行参数传递给它-sfile_1_name-nfile_1_name-efile_2_name。它还将程序的标准输出和标准错误定向到工作目录中名为file_1_name.log 的文件,如果该文件不存在则创建该文件,如果存在则替换其内容。如果命令有效,那么folder3 实际上必须是常规文件或指向某个文件的符号链接,而不是目录/文件夹。

我们无法告诉您更多信息。命令行参数的重要性和程序的一般行为通常不会通过您提供的名称来传达。特别是,某些参数对应于您识别的删除后缀的文件名这一事实可能是有意义的,但我们无法告诉您其含义。

另外,你观察到

当我使用命令行检查使用的 shell 时,它会显示 tcsh

毫无疑问,您已经检查了自己的默认 shell 是什么。这并不表示 R 将使用什么 shell 来运行命令。

【讨论】:

  • 谢谢,这肯定有助于我更好地理解发生了什么;以及我可以看什么来解决问题:)
猜你喜欢
  • 2012-12-24
  • 2013-11-03
  • 2018-08-06
  • 2013-01-08
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多