上下文

上下文

上下文

我已经scilab-6.1.0.bin.linux-x86_64.tar.gz“Scilab”官方网站因为我希望能够使用提供的工具。

bin下载文件的目录中,我有以下文件

$ ls -l | cut -d ' ' -f 5-

1713591 Feb 25 05:27 modelicac
2057719 Feb 25 05:27 modelicat
  44563 Feb 25 05:27 scilab
      6 Feb 25 05:27 scilab-adv-cli -> scilab
  24741 Feb 25 05:27 scilab-bin
      6 Feb 25 05:27 scilab-cli -> scilab
  20725 Feb 25 05:27 scilab-cli-bin
  44563 Feb 25 05:27 scinotes
  44563 Feb 25 05:27 xcos
 675942 Feb 25 05:27 XML2Modelica

$ test -L scilab-adv-cli && test -L scilab-cli && echo $?
0

正如我们所看到的,scilab-cliscilab-adv-cli都是到 的符号链接scilab。执行scilab-cli,scilab-adv-cliscilab会产生不同的结果(参见下面的 gif)

在此输入图像描述

问题

不是符号链接(A),它指向一个可执行文件(二),应该执行(二)

在上面提出的场景中,scilab-cli并且scilab-adv-cli将是(A)并且scilab会是(二)

答案1

运行指向可执行文件的符号链接确实会运行可执行文件,但有一个重要的区别:给予新进程的第一个参数(在本例中)存储给定的命令,给出了符号链接的名称,而不是目标可执行文件的名称。这允许程序根据它们的调用方式实现不同的行为。

您的系统上可能安装的一个常见实例是apropos:它通常(至少在 Linux 系统上)是 的符号链接whatis,但这两个命令的行为不同。

在您的情况下,当scilab运行为时scilab-cli,它会显示其文本模式界面;当它运行时scilab(正如你的方法所发生的那样realpath),它启动它的 GUI。

相关内容