shell 相关知识点

shell命令

#! /bin/sh
# 第一行指定解释器

# -e 启用转义 \c 不打印最后的换行符 
echo -e "Enter num: \c"

#重定向
who > test.log # 将who的打印输出到test.log
tr -d s < test.log # 输入改为test.log 删除文本中的s
ls >> test.log # 将ls的输出写到test.log末尾

# 管道
ls /sys/bus | sort > bus.log # 将前面的输出作为后面的输入

# /dev/null /dev/zero
# 空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件
# 用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件


x=3+4
let y=510
declare -i z=54/3
echo $x $y $z
# 3+4 510 18
declare -p x y z
# declare -- x="3+4"
# declare -- y="510"
# declare -i z="18"

# 把本地变量导出为环境变量
export VARNAME=value
# 删除已定义的环境变量或本地变量
unset VARNAME

# Wildcard
# * 匹配0个或多个任意字符
# ? 匹配一个任意字符
# [若干字符] 匹配方括号中任意一个字符的一次出现
ls /dev/ttyS*

# 命令代换 $() ``
DATE=$(date)
DATE=`date`

# 算术代换
# $(())中只能用+-*/和()运算符,并且只能做整数运算。
# $[base#n],其中base表示进制,n按照base进制解释,后面再有运算数,按十进制解释
echo $[16#10+11]

# 单引号用于保持引号内所有字符的字面值
# 双引号防止通配符扩展,但允许变量扩展
VAR=200
echo $VAR	
echo '$VAR'
echo "$VAR"
# 200 $VAR 200

# test 退出状态
test "$str1" = "$str2"
[ "$str1" = "$str2" ]
# -f(file) -d(directory) -z(zero) -n(non-zero) 
# -eq(等于)-ne(不等于)-lt(小于)-le(小于等于)-gt(大于)-ge(大于等于)

# “:”是一个特殊的命令,称为空命令,该命令不做任何事,但Exit Status总是真
if :; then echo "always true"; fi

case "$1" in
	start)
		...
	;;
	stop)
		...
	;;
	reload | force-reload)
		...
	;;
	restart)
		...
	*)
	;;
esac

# {0..10}在/bin/bash才有用
for i in $(seq 0 10)
do 
	echo $i
done

#! /bin/sh
echo "Enter password:"
read TRY
while [ "$TRY" != "admin" ]; do
	echo "Sorry, try again"
	read TRY
done

# $0 			相当于C语言main函数的argv[0]
# $1、$2...	这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]、argv[2]...
# $# 			相当于C语言main函数的argc - 1,注意这里的#后面不表示注释
# $@ 			表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
# $* 			表示参数列表"$1" "$2" ...,同上
# $? 			上一条命令的Exit Status
# $$ 			当前进程号


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值