linux系统下用.sh文件执行python命令的方法

 更新时间:2022年07月27日 15:11:38   作者:xiyou__  
这篇文章主要给大家介绍了关于linux系统下用.sh文件执行python命令的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友可以参考下

标准版

假设,在终端要执行的命令是:

python main.py

首先在执行目录下创建test.sh(文件名自定义)文件

并在test.sh文件中写入:

python main.py

保存。

======================== 经实践 下面这一步可省 =================================

在终端执行:

chmod a+x test.sh

以上命令使test.sh成为可执行文件。

======================== 经实践 上面这一步可省 =================================

再在终端执行:

bash test.sh

即可用bash命令执行python main.py。

进阶版

在.sh文件中输入更多内容实现调参过程,具体语法参考shell指令。

1 for循环

将test.sh 文件中的内容改为:

for num in 1 2 3 4 5 6 7 8 9 10
do
    python main.py
done

再在终端执行:

sh test.sh

以上代码可以实现将python main.py循环执行10次。

假设main.py是可以输入参数的:

python main.py --epoches 5

以上命令代表可以指定main.py中epoches的大小。

于是,可以通过修改.sh文件的内容实现调参(其中,$表示引用变量的值):

for num in 1 2 3 4 5 6 7 8 9 10
do
    python main.py --epoches $num
done

以上代码可以使python main.py在epoches在1~10的范围内都跑一遍。

2 嵌套for循环

同时对epoches和learning_rate进行调整:

for num in 2 3 4 5 6 7 8 9 10
do
    for b in 3e-5 2e-5 1e-5 5e-6 3e-6 2e-6 1e-6
        do
            python main.py --epoches $num --learning_rate $b
        done
done

3 定义变量名

要将运行结果保存到指定文件,文件名由变量名决定,假设原命令:

python main.py --epoches 5 --learning_rate 5e-5 --log log.txt

修改test.sh文件如下:

for num in 2 3 4 5 6 7 8 9 10
do
    for b in 3e-5 2e-5 1e-5 5e-6 3e-6 2e-6 1e-6
        do
            python main.py --epoches $num --learning_rate $b --log ${num}$b.txt
        done
done

此时log文件名有num和b组成,eg.,23e-5.txt

养成好的书写习惯,变量名用{}引起来。

4 写if函数

if函数的语法如下:

if [ ${a} == "a" ] && [ ${b} == "b" ]; then
echo "pass"
fi

多层if函数:

if [ ${a} == "a" ] && [ ${b} == "b" ] ; then
echo "pass"
elif [ ${a} == "b" ] && [ ${b} == "a" ] ; then
echo "pass"
else
echo "pass"

以上语法的几个注意事项:

  • []和内部的语句要用空格分开,不能连在一起
  • 结尾fi和开头的if是对应的,不能省略
  • echo部分可以换为任何想执行的程序
  • 在一段连续的执行命令之间,不可以都注释语句,会报错,例如如下情况

总结

到此这篇关于linux系统下用.sh文件执行python命令的文章就介绍到这了,更多相关linux .sh文件执行python内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Shell脚本循环读取文件中每一行的方法详解

    利用Shell脚本循环读取文件中每一行的方法详解

    读取文件是我们在日常工作中经常遇到的一个需求,下面这篇文章主要给大家介绍了关于利用Shell脚本循环读取文件中每一行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习下吧。
    2017-09-09
  • 一张图让你学会Vim编辑器快捷键

    一张图让你学会Vim编辑器快捷键

    今天小编就为大家分享一篇一张图让你学会Vim编辑器快捷键,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Shell脚本实现复制文件到多台服务器的代码分享

    Shell脚本实现复制文件到多台服务器的代码分享

    这篇文章主要介绍了Shell脚本实现复制文件到多台服务器的代码分享,用在多机集群环境中非常方便,需要的朋友可以参考下
    2014-09-09
  • Linux中 sed 和 awk的用法详解

    Linux中 sed 和 awk的用法详解

    sed是一个很好的文件处理工具,本身是一个管道命令,awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大 ,本文重点给大家介绍Linux中 sed 和 awk的用法,一起看看吧
    2017-07-07
  • Linux C中sockaddr和sockaddr_in的区别

    Linux C中sockaddr和sockaddr_in的区别

    这篇文章主要介绍了Linux C中sockaddr和sockaddr_in的区别的相关资料,需要的朋友可以参考下
    2017-07-07
  • Linux下is not in the sudoers file的解决方案

    Linux下is not in the sudoers file的解决

    当我们使用sudo命令切换用户的时候可能会遇到提示以下错误:用户名 is not in the sudoers file.本文给大家分享原因分析及解决方案,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • 非常实用的23个Shell脚本实例

    非常实用的23个Shell脚本实例

    为大家整理了23个实例,通过23个实战经典脚本实例,可以拿来就用,根据大家的需求可以直接使用,为大家整理了23个实例,希望此文章对各位有所帮助
    2021-06-06
  • shell脚本实现随机生成10个8位密码

    shell脚本实现随机生成10个8位密码

    这篇文章主要介绍了shell脚本实现随机生成10个8位密码的方法,这里推荐给大家,有需要的小伙伴的可以参考下。
    2015-03-03
  • 学习linux常用命令(推荐)

    学习linux常用命令(推荐)

    本文给大家分享小编日常整理的有关linux常用命令,对大家今后的工作学习非常有帮助,对linux常用命令知识感兴趣的朋友一起学习吧
    2016-11-11
  • Linux ps命令详解及Linux查看进程的操作方法

    Linux ps命令详解及Linux查看进程的操作方法

    这篇文章主要介绍了Linux ps命令详解,Linux查看进程的操作方法,ps命令常用的方式有三种,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12

最新评论