一、shell变量

1,定义变量

注意,变量名和等号之间不能有空格,等号“=”前后都不能有空格,否则不能识别。这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

2.引用变量

引用变量时,变量名前加美元符号$;

变量名外面可加花括号,加不加都行,加花括号是为了帮助解释器识别变量的边界,最好养成加花括号的习惯,可以避免误识别。

3.字符串

字符串可以用单引号,也可以用双引号,也可以不用引号。(若是字符串中包含空格就必须有引号)

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符

以“#”开头的为注释

5.传递参数

执行shell脚本时,可以向脚本传递参数,脚本内获取参数的格式为: $n n 代表一个数字, $0 为执行的文件本身(脚本名称),$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数

二、python变量

1.定义变量

等号(=)用来给变量赋值 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。同时变量命名规范如下:

a、变量名只能是字母, 数字,下划线
b、变量的第一个字符不能是数字

c、变量名中不能有空格

d、关键字不能声明变量

2.引用变量

使用变量时,直接引用变量名即可,不需要任何引用符号。

3.字符串

字符串用单引号'或双引号"括起来。

单引号,双引号(在Python里字符串既可以用单引号也可以用双引号,仅显示单行文字),三引号(显示多行文字)

python中用"#"进行注释

5.传递参数

想python脚本传递参数,脚本中获取参数用sys.argv[0]表示python脚本的路径,sys.argv[n]表示传递的第n个参数。

三、bat

1.定义变量

bat中用set命令定义变量

set 变量名=号右边的是要给变量的值

set /p 交互式变量,即需要用户输入

set /a 算术表达式

2.引用变量

对变量引用用%,即 %var% ,延迟变量用!,即 !var! (圆括号中定义的变量需要用延迟变量扩展),for定义的变量用 %%

3.字符串

bat中的字符串一般变量相同,不需要引号

bat中用双冒号进行注释 ::

5.传递参数

给bat脚本传递参数,脚本内部获取参数用 %1 %2 %3 %4 %5 ......一直到%9,表示第几个参数。%0最好不要乱用,可能表示bat脚本的绝对路径,也可以无限循环。

bat内部函数(标签)传入的参数使用 %~1 ,%~n进行引用

这里要讲的会包含shell变量,python变量和bat变量一、shell变量1,定义变量注意,变量名和等号之间不能有空格,等号“=”前后都不能有空格,否则不能识别。这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:首个字符必须为字母(a-z,A-Z)。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help... REM 该命令后的内容不被执行,但能回显。:: 也可以起到rem 的注释作用, 但有两点需要注意: 第一, 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。 有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别。 无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,所以 :: ...
Linux下统计文件/文件夹数量统计某文件夹下普通文件的个数查看磁盘占用空间大小查看某文件夹占用磁盘大小查看当前某程序/软件进程软链接文件/文件夹 统计某文件夹下普通文件的个数 ls -l |grep “^-”|wc -l 代表普通文件 l 代表软链接文件 查看磁盘占用空间大小 df -h 查看某文件夹占用磁盘大小 du -sh 文件夹 查看当前某程序/软件进程 ps -aux | grep python ps -aux | grep WeChat ps -aux | grep bash
之前想着在windows下和linux下调用一些 python Scrapy的接口,发现路径问题,传参数问题都挺麻烦,遂改为在 bat 文件和 shell 中具体写方法,然后执行他们就好了 1.执行 bat 脚本 (1)传入参数 bat 处理文件中可引用的参数为%0~%9,%0是指批处理文件的本身,也可以说是一个外部命令;%1~%9是批处理参数,也称形参,例如:新建一个文件test. bat ,文件内容如下...
如果需要把大量实验跑完,最好用批量处理操作,直接使用 shell shell 文件来操作也行,但是需要学习 shell 脚本的语法,不如直接用 python 调用 shell ,把 python 如何调用 shell 学会,就直接在 python 里边把需要的命令写成字符串,传递给 python 的调用 shell 的模块就行了 import os os.system('ffmpeg -version') #将在 shell 中打印出f...
NSGA-II是一种常用的多目标优化算法,它通过遗传算法和非支配排序相结合,能够在多个目标函数的条件下找到一组最优解。而NSGA-II的代码可以使用 Python 语言来实现。 在 Python 中,可以使用NSGA-II的 Python 包nsga2来实现该算法的优化过程。该代码实现依赖于numpy和matplotlib两个包,因此需要先安装这两个包。在安装完成后,即可通过import nsga2来引入nsga2包。 使用nsga2包求解问题的过程,首先需要定义目标函数和 变量 ,然后使用nsga2的NSGAII类来进行求解。在NSGAII类中,需要通过设置多个参数来控制算法的运行过程,例如 种群数量、迭代次数、交叉概率、变异概率等。 在求解过程中,nsga2包会返回一个帕累托前沿解集,其中每个解代表着不同的目标函数取值。通过对这个解集进行分析和选择,可以最终达到多目标优化的目的。 总之,NSGA-II的 Python 实现代码简单易用,只需通过nsga2包定义目标函数、 变量 和设置参数,就能轻松完成求解过程。