前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【趣学编程】linux常用命令(二)

【趣学编程】linux常用命令(二)

作者头像
趣学程序-shaofeer
发布2019-07-27 18:31:00
7450
发布2019-07-27 18:31:00
举报
文章被收录于专栏:upuptop的专栏upuptop的专栏

管道命令 |

  1. 管道会触发子进程执行命令,
  2. 管道的作用将管道前面的输出交给右边的作为输入。
  3. 管道实际的操作是,开启了两个子线程,将这两个子线程的IO打通,用到的便是IO重定向
代码语言:javascript
复制
优先级问题:    echo $$  |  more    会打印当时进程的pid,不会打印子进程的pid
    $$符号,比管道的优先级高,bash会先执行,然后在开启子进程。
    echo $ BASHPID  |  more    会先开子进程,然后解释变量。

    [root@CentOS6 ~]# echo $$    1547    [root@CentOS6 ~]# echo $$ | more    1547    [root@CentOS6 ~]# echo $BASHPID | more    1569    [root@CentOS6 ~]# 

程序结果标识符

  1. 0是成功
  2. 非0是失败

为什么要这样设计?

这样可以使用非0数字代表不同的错误类型

变量的获取

代码语言:javascript
复制
.sh 文件中
获取变量个数$#
获取第几个数字$n$1 获取第一个如果n为两位数需要使用该方式: ${10}
获取变量列表$*$@
[root@CentOS6 shell]# cat test.shecho $#echo $1echo $2echo ${10}echo $*echo $@


[root@CentOS6 shell]# ./test.sh  1 2 3 4 5 6 7 8 9 10 11 1112101 2 3 4 5 6 7 8 9 10 111 2 3 4 5 6 7 8 9 10 11

环境变量

环境变量的特质是导出而非共享 父进程export出来,子进程可以使用, 如果子进程修改了,再次使用会变化吗?子进程修改,父进程不会改变,子进程是修改后的值 如果父进程改了,子进程没有退出的情况下值会变化吗?不会 任一方修改,另一方不会发生变化

代码语言:javascript
复制
创建一个环境变量
[root@CentOS6 shell]# export author=upuptop[root@CentOS6 shell]# echo authorauthor
创建子进程[root@CentOS6 shell]# cat exporttest.shecho $authorauthor=pyfysfecho $author
sleep 20
echo $author

前台运行子进程[root@CentOS6 shell]# ./exporttest.shupuptoppyfysfpyfysf
后台运行子进程,打印查看父进程的值是否改变了,在父进程中改变值,等待20秒睡眠,看是否子进程的值变化了[root@CentOS6 shell]# ./exporttest.sh  &[1] 1678[root@CentOS6 shell]# upuptoppyfysf
[root@CentOS6 shell]# echo $authorupuptop[root@CentOS6 shell]# author=shaofff[root@CentOS6 shell]# echo $authorshaofff[root@CentOS6 shell]# pyfysf

条件表达式

条件表达式用 [] 括起来,必须要有空格。为什么?因为 [ 是个命令

练习题

需求:实现添加用户功能,用户名和密码相同,输入命令之后一步完成 程序自定义输出

代码语言:javascript
复制
#!/bin/bash
[ $# -eq 0 ] && echo "no args" &&  exit 3
useradd $1echo $1 | passwd --stdin $1 &> /dev/null
echo "user add ok……"






测试:[root@CentOS6 shell]# vim adduser.sh[root@CentOS6 shell]# chmod +x adduser.sh[root@CentOS6 shell]# ./adduser.sh upuptopuser add ok……[root@CentOS6 shell]# su upuptop[upuptop@CentOS6 shell]$ exitexit
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣学程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 程序结果标识符
  • 变量的获取
  • 环境变量
  • 条件表达式
  • 练习题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档