shell的脚本规范和变量

本文介绍了shell脚本规范,包括echo -e用法,如不换行、换行、按颜色显示等,还讲解了重定向,如标准输入、输出、错误输出及混合输出。同时阐述了各类变量,有自定义变量、环境变量、位置变量和预定义变量,并给出了相关示例和说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


shell的脚本规范

echo -e用法

  • echo -e “hello\c” 不换行
  • echo -e “hello\n” 换行
  • echo -e “\e[33mhello\e[0m” 按颜色显示

重定向

  • 标准输入:默认以键盘来输入,文件编号为0
  • 标准输出:默认设备是显示器,显示到桌面,文件编号为1,可写做 1>或1>>
  • 标准错误输出:默认设备是显示器,文件编号为2 ,写做 2>或2>>
  • 混合输出:既可输出正确的,也可输出错误的,可写做 &>或&>>
  • > 为覆盖文件内容,>>为追加到文件里
  • <为反向输入,可以不用交互模式就可以设置密码
[root@localhost ~]# vim pass
1234
1234
[root@localhost ~]# passwd zhangsan < pass 
更改用户 zhangsan 的密码 。
新的 密码:无效的密码: 密码少于 8 个字符
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。

变量

自定义变量

可自己指定变量名和变量值,格式在上一章中讲过

  • a=10
[root@localhost ~]# a=10   	//给变量赋值
[root@localhost ~]# echo $a			//输出变量值
10

环境变量

-env 可以查看所有环境变量,想要将一个自定义变量加入永久变量
可以export a=10写入/etc/profile中

位置变量

#!/bin/bash
useradd $1 		//定义第一个变量
echo "$2" |passwd --stdin $1  //定义第二个变量
[root@localhost ~]# bash pass lisi 123  //运行脚本 脚本后面第一个参数就是第一个位置,对应第一个变量,第二个参数对应第二个变量,此脚本用于创建用户并给一个密码
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。

预定义变量

  • $? 代表上一条执行命令的返回结果,0代表执行成功,非0代表执行不成功
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  original-ks.cfg  pass  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# echo $?
0
[root@localhost ~]# ls sss
ls: 无法访问sss: 没有那个文件或目录
[root@localhost ~]# echo $?
2
  • $# 代表位置参数个数
#!/bin/bash
useradd $1
echo "$2" |passwd --stdin $1
echo $#
[root@localhost ~]# bash pass lisi 123
useradd:用户“lisi”已存在
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2

  • $$ 代表当前进程的进程号
[root@localhost ~]# echo $$
21331
  • $! 代表上一个后台进程的进程号
[root@localhost ~]# vim test &
[1] 21674
[root@localhost ~]# echo $!
21674

[1]+  已停止               vim test

  • $* 表示所有位置参数的内容,当成一个整体
#!/bin/bash
echo $1
echo $2
echo $*
touch "$*"
[root@localhost ~]# ll
总用量 16
-rw-------. 1 root root 1699 531 23:51 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 62 19:42 c d

  • $@ 表示所有位置参数的内容,以单个形式列出
#!/bin/bash
echo $1
echo $2
echo $@
touch "$@"
[root@localhost ~]# ll
总用量 16
-rw-r--r--. 1 root root    0 62 19:44 a
-rw-------. 1 root root 1699 531 23:51 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 62 19:44 b
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值