shell中的set、seq、eval、exec、&&和||
程序员文章站
2022-05-18 23:17:28
一、set 查看set 帮助: 选项: e:任何命令执行失败(非0 status)直接退出 x: 打印执行过程的命令行、参数 +e:命令执行失败不会中断退出 +x:不打印执行过程的命令行、参数 二、seq seq: 打印数字序列 用法:seq first [incr] last 三、eval && ......
一、set
查看set 帮助:
bash -c "help set"
选项:
- -e:任何命令执行失败(非0 status)直接退出
- -x: 打印执行过程的命令行、参数
- +e:命令执行失败不会中断退出
- +x:不打印执行过程的命令行、参数
二、seq
seq: 打印数字序列
用法:seq first [incr] last
name seq -- print sequences of numbers synopsis seq [-w] [-f format] [-s string] [-t string] [first [incr]] last
➜ blj seq 0 2 0 1 2
三、eval && exec
都是内建命令。
1.eval
- bashshell中内建的一个命令,命令后面所跟的内容都认为是参数,但是会两次扫描其参数:第一次扫描会将参数中的变量进行替换;第二次扫描会将后面的参数当作一个shell中的命令组合来执行命令。
- 实际使用中,可以将任意组合的命令赋值给一个变量,然后在需要的位置通过 eval $variable 来执行这个命令。
- 常见用法:
- 直接组合命令 : eval ls -al
- 替换变量
- 可以执行任何值为命令组合的变量
- 变量替换赋值
2.exec
- 也是shell内建的一个命令。类似 eval、source,不同的是exec执行后面的命令会替换当前shell进程,而前两者不会。
- 常见用法:
- 用于分离执行脚本,并退出子脚本的shell进程
- 用于设置描述符重定向输入文件内容
- 用于设置描述符重定向输出内容至文件
四、&&和 ||
- command1 && command2 [&& command3 ...]
- 左边的命令返回真后,右边的命令才能够被执行
- 只要有一个命令返回假,后面的命令就不会被执行
- command1 || command2
- 只有左边的命令返回假($? ==1),右边的命令才能被执行,即实现短路逻辑或操作。
- 只要有一个命令返回真,后面的命令就不会被执行
上一篇: Hello,world
推荐阅读
-
Java中final作用于变量、参数、方法及类该如何处理
-
Java获取指定字符串出现次数的方法
-
Spring MVC 404 Not Found无错误日志的解决方法
-
Mono for Android 实现高效的导航(Effective Navigation)
-
自定义一个theme在不同的sdk环境下继承不同的值
-
Spring + Spring Boot + MyBatis + MongoDB的整合教程
-
Spring boot + LayIM + t-io 实现文件上传、 监听用户状态的实例代码
-
Photosho打造绚丽的潮流光斑
-
Microsoft Edge浏览器新待遇 微软为其提供详细的更新日志
-
android apk反编译到java源码的实现方法