您现在的位置是:主页 > news > 有一个做场景动画的网站/快速排名优化seo

有一个做场景动画的网站/快速排名优化seo

admin2025/6/29 19:03:35news

简介有一个做场景动画的网站,快速排名优化seo,目前做公司网站有没有用,途牛旅行网网站建设我要看大佬写的代码,但是他运行就是那.sh文件运行, 有这么个语句:./run_nts.sh 1 gcn_cora.cfg 。看不懂,啥东西,后来查了后缀,原来.sh为后缀的就是传说中的脚本,于是我们来了解一下脚本是啥 …

有一个做场景动画的网站,快速排名优化seo,目前做公司网站有没有用,途牛旅行网网站建设我要看大佬写的代码,但是他运行就是那.sh文件运行, 有这么个语句:./run_nts.sh 1 gcn_cora.cfg 。看不懂,啥东西,后来查了后缀,原来.sh为后缀的就是传说中的脚本,于是我们来了解一下脚本是啥 …

我要看大佬写的代码,但是他运行就是那.sh文件运行,

有这么个语句:./run_nts.sh 1 gcn_cora.cfg 。看不懂,啥东西,后来查了后缀,原来.sh为后缀的就是传说中的脚本,于是我们来了解一下脚本是啥

我觉得大佬的这个代码使用脚本的目的就是为了方便运行调试代码,

我的目的也是如何会使用脚本来调试代码,于是,开始吧:


摘录网上的一段对于脚本用法的解释:

脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。 


我是Ubuntu 20.04 系统 代码在VSCode上编写的 

国际惯例打开菜鸟教程:Shell 教程 | 菜鸟教程

1. 啥是shell :

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。

2. 用shell写一个简单的hello world demo :

打开VSCode,新建一个文件夹:"代码尝试"。在文件夹中新建一个文件,命名以.sh为结尾,表明这是一个shell文件

(不用配置环境,啥也不用干)

然后在这个.sh文件中写入两行代码:

#!/bin/bash
echo "Hello World !"    #echo 命令用于向窗口输出文本

解释一下第一条语句: #!/bin/bash

 #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

简言之,我们常用的就是Bourne Shell 和 Bourne Again Shell 但这两者不做区分,因此用来指定脚本使用哪个解释器时,#!/bin/sh ,它同样也可以改为 #!/bin/bash

然后,运行该文件:

有两种方法:

第一种就是在VSCode中右键 -- Run Code 

第二种方法是[推荐这种]:

在命令行中:首先进入该.sh所在的文件夹,我的.sh文件名为test.sh,

所以在命令行中首先键入命令1:chmod +x  test.sh

然后键入命令2:./test.sh   就可以执行该条命令了

解释一下第二种方法的两条命令:

命令1 的目的是 :给我们的test.sh指令赋予一个执行权限。chmod 是 控制用户对文件的权限的命令,大致意思就是让用户可以后通过 ./XXX.sh 就可以直接执行shell脚本文件了

【补充】在ubuntu(Linux)中,如果一个文件是可执行的,它会显示的颜色是绿色。下图就是:我仅仅给test.sh执行了 chmod +x test.sh 语句,所以同为shell文件,test.sh就是绿色的,而testtt.sh文件就是白色的(不可直接执行文件)

如果我们选择直接执行:./testtt.sh ,由于我们没有对该sh文件进行赋权操作,所以会返回一个报错:bash: ./testtt.sh: Permission denie

 所以需要先对sh文件进行赋权,然后再执行 ./XXX.sh

【补充】chmod +x XXX.sh命令是赋权操作 ;chmod -x XXX.sh就是去权操作(那么,很显然,去权之后的.sh文件的颜色就重新变为了白色)

【补充】chmod +x XXX.sh命令的赋权操作对于一个.sh文件执行一次就够了,只要该文件名不变,.sh文件中的内容怎么变都没关系,下次直接./XXX.sh运行即可

命令2的解释:

为什么赋权操作中不需要 ./   而执行操作就必须加上 ./ 这个东西呢?

与运行其它二进制的程序一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的文件。但,PATH路径下,只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 路径中。我们当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的。使用 ./test.sh 告诉系统说,就在当前目录找。

3. shell的注释:

单行注释:前面加一个#

4. 用命令行执行shell 如何传递参数:

$k : k代表第k个参数

#!/bin/bash
echo "文件名:$0"
echo "第一个参数:$1"
echo "第一个参数:$2"

在命令行中输入:./test.sh aa bb

输出是:

很直观可以理解,其实 `$0`就是我们命令中的 "test.sh" ,它就是作为指令中的第一个参数使用的

参数与参数之间用 空格  隔开即可

5. 这里补充一个:MVAPICH2——mpiexec使用教程

由于大佬的代码是多线程的一个实现,所以,它的shell语句的指令就是:mpiexec XXXXX

啥意思呢:

 因此:run_nts.sh中的语句 :mpiexec -np $1 ./build/nts $2

配合执行该run_nts.sh脚本文件时在命令行中输入的指令:./run_nts.sh 1 gcn_cora.cfg

大致意思就是:以单节点(单机器)多线程方式执行 ./build/nts  文件,由于此时-np参数给赋值为1,那就说明是以单线程的方式执行 ./build/nts 文件。然后执行该 ./build/nts 文件时,需要的参数由 gcn_cora.cfg 文件提供

ref : MVAPICH2——mpiexec使用教程:

MVAPICH2——mpiexec使用教程_Noven-zh的博客-CSDN博客_mpiexec命令

6. linux 中在shell中使用 " . " 和  " ./ " 执行的区别

linux——shell中“.” 和 “./”执行的区别_Noven-zh的博客-CSDN博客_shell中.