下怎么运行sh脚本_Linux:脚本编程4

参考:生信技能树

019d03504c99a55bf8f6d3fa32167868.png

44ee9aaabb11a31ef73b9252445fa6fc.png

类似R里的Rstudio

7646cf6bd836bfcc15eabfd60fc12c2f.png

不存在的文件, vim就会创建

vim file.txt

进入命令模式

df03ee3cd1e775d6de0fb55c64e3b9de.png

按一下键盘i : 输入模式

2d7c71171aa159d465c3f59bc440ff5e.png

按ESC键,返回命令模式

退出,按 shift + : 进入底线命令模式

可以看到光标

912fcdd8fc0cdca551a290ca47c6bf40.png

按wq : w是保存,q是退出

67e393b2b477751c2e3eb0344f86413e.png

就回到正常的命令行模式

44932cc5ac02c8aff99650ae3addf9a1.png

cat查看一下 我们写的文件

bfbf264c09ac5c71b425646dafc45478.png

bash可以运行里面的代码,里面的shell语言语法

bash file.txt 

584679e226fdf60c009f63ffd226808e.png

shell 脚本:为了和普通文本文件区分开,通常shell脚本都
会以 .sh 为后缀名 。


我们现在就改一下名

mv file.txt file.sh

978d2218c6988dc95962c2bc32137a01.png

Vim 编辑器:vimtutor zh_CN 可以查看帮助文档 

63194768ef5ef9493d0d8f2bbf07e740.png

怎么退出呢?

按ESC进入命令模式,按shift + : 进入底线模式,然后输入 wq 退出

c9670400e1b40e5e29c9bd9d7b8a89a0.png

怎么样规范性写shell脚本?

vim test.sh

一般第一行,是声明一下,指定解释器,让别人知道 怎么运行吧

比如这里声明用bash

396336b0ea5a496067777dbc5f99d710.png

退出

按ESC进入命令模式,按shift + : 进入底线模式,然后输入 wq 退出

bash一下运行

bash test.sh

80a8e37a11db7ba3770c95abba5119a0.png

标准输出流,标准误输出流

8bec3401bbb61623122b3d65079a551b.png

初学者简单理解为:1是正确输出, 2是错误输出

这里重新写一下file.sh文件

故意写一句正确命令,第一句错误命令

bash后提示第二句执行不了

73571389b3537b6db0a391d2ff498e42.png

我们可以把正确输出 和 错误输出重定向到2个文件里

bash file.sh 1>1.log 2>2.log

cat查看一下

1.log(保存的是正确输出), 2.log (保存的是错误输出)

29a32da07b43801bcde9c8ee9e222c24.png

如果想把正确输出、错误输出保存在一起

bash file.sh 1>1.log 2>&1

没有道理可讲的写法

5afe198a7a5bb2948d58f2430aa608a9.png

注意:如果1.log文件里面本来有内容,会被覆盖掉

修改权限

Shell 脚本:修改shell脚本的文件权限后,可以全路径调用 

436281a4fbffed162bfa6ff5b037ec58.png

查看权限

ll test.sh

2b596982526e1dd3d23be734e8d86d5c.png

修改权限

chmod 764 test.sh

764表示: 

7=4+2+1 可读、可写、可执行

6=4+2    可读、可写

4            可读

b5ceafcc53a1bba8f562ab4268c47c73.png

Shell 脚本:参数传递

新建个脚本

vim file2.sh

第一行是指定bash,声明一下,规范化操作

第二行是 cat $1

f09ad660deb62862649109992e00abb7.png

cat file2.sh readme.txt

这时候会查看readme.txt内容, 所以$1指的就是readme.txt位置

5e8c86811e061366a5d815bcf6a29026.png

7a929107ec233f249edcd3c5fcf68b24.png

假如有个程序sleep 60,  就是等60s

vim file.sh

4a110ca7d41b09461e6acbd8fea9d129.png

挂载

nohup bash file.sh &

f48b6a20e42fd77bb099e5428094d671.png

数字1774是pid (不懂)

提示,结果输出在nohup.out

查看后台任务

ps -ef | grep sleep

08a854f8180f6a9a42e669ffb4e01538.png

如果不想运行kill : 杀掉进程

kill 1774
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值