shell使用特殊变量

3.1问题

本例要求编写一个脚本/root/myuseradd,功能特性如下:

1)此脚本可接收2个位置参数,能够按照下列格式执行:

/root/myuseradd用户名密码

2)此脚本执行后,能显示“一共提供了$#个参数”,然后在下一行显示“用户名是$1,密码是$2”,紧跟下一行开始输出对应文件的前几行内容。

3.2方案

使用位置变量可以取得在执行脚本时提供的命令行参数:

表示为$n,n为序号

$1、$2、....${10}、${11}、....

使用预定义变量$#可以统计执行脚本时提供的位置变量个数。

3.3步骤

实现此案例需要按照如下步骤进行。

步骤一:编写/root/myuseradd添加用户的脚本

1)编写脚本代码

[root@server0~]#vim /root/myuseradd

#!/bin/bash

echo "一共提供了$#个参数"

echo "用户名是$1,密码是$2"

useradd$1

Echo "$2" | passwd --stdin $1

2)添加x执行权限

[root@server0~]#chmod +x /root/myuseradd.sh

步骤二:测试/root/myuseradd脚本

1)测试添加用户bob,密码设为1234567

[root@server0~]#/root/myuseradd bob 1234567

一共提供了2个参数

用户名是bob,密码是1234567

更改用户bob的密码。

passwd:所有的身份验证令牌已经成功更新。

[root@server0~]#id bob

uid=1002(bob)gid=1002(bob)组=1002(bob)

2)测试添加用户jerry,密码设为1234567

[root@server0~]#/root/myuseradd jerry 1234567

一共提供了2个参数

用户名是jerry,密码是1234567

更改用户jerry的密码。

passwd:所有的身份验证令牌已经成功更新。

[root@server0~]#id jerry

uid=1003(jerry)gid=1003(jerry)组=1003(jerry)

最新文章

  1. bzoj 1179[Apio2009]Atm (tarjan+spfa)
  2. GoLang搞一个基本的HTTP服务
  3. springmvc中forward和redirect
  4. HDU 5285 wyh2000 and pupil (二分图着色)
  5. Linux下c/c++项目代码覆盖率的产生方法
  6. iOS之AVPlayer的简单应用
  7. EF 数据库迁移(Migration)
  8. python while循环案例
  9. VC++ 判断一个文件是不是快捷方式
  10. .NetCore Session.Redis (转载)
  11. BZOJ1911: [Apio2010]特别行动队(dp 斜率优化)
  12. 【[NOI2009]管道取珠】
  13. Redis全方位讲解--哨兵模式(Sentinel模式)
  14. equals和==方法比较(二)--Long中equals源码分析
  15. Google Map API 应用实例说明
  16. JDBC 滚动和分页
  17. log4go的一些改进设想
  18. priority_queue的运算符重载问题
  19. Lex与Yacc学习(六)之lex & yacc (简单计算器程序) 运行
  20. LightOJ 1235 - Coin Change (IV) (折半枚举)

热门文章

  1. 【python】提取sql语句中的表名
  2. 数据挖掘入门系列教程(五)之Apriori算法Python实现
  3. 全球疫情统计APP图表形式展示
  4. 为什么 String 是 immutable 类
  5. SQL Prompt9 注册教程
  6. ElegantSnap 一个优雅的,易用的iOS/tvOS/macOS自动布局框架, 超级详细的使用教程,多视图水平等宽/垂直等高排列
  7. mysql事务原理及MVCC
  8. type=file 文件修改表单 名称不能正常回显的问题
  9. 实例演示:如何简化生产中的Pod安全策略?
  10. 不再忍受龟速 Github,你也可以试试在云开发上部署个人博客!