Shell 入门到放弃大全

本文详细介绍了Shell脚本中的错误检查技巧,如使用bash-x和bash-n检查错误和语法。讲解了如何声明、赋值、取消变量,并展示了变量切分的方法。此外,还涵盖了用户输入、时间戳获取、后台进程管理和四则运算等内容。文章深入浅出地探讨了条件判断,包括文件存在性、权限检查、时间比较以及字符串和数值比较。最后,提到了变量类型的设定和环境变量的导出。
摘要由CSDN通过智能技术生成

bash -x frist_shell.sh 可以查询脚本错误的行数
bash -n frist_shell.sh 可以查看脚本语法是否有问题
获取当前的日期: echo “$(data+’%F %T’)”
声明变量: A=hello
取消变量: unset A
切分一个变量:
例: A=123456
echo A : 2 : 3 给 变 量 赋 值 命 令 结 果 的 俩 种 方 式 : 1 、 A = ‘ h o s t n a m e ‘ 2 、 B = {A:2:3} 给变量赋值命令结果的俩种方式: 1、A=`hostname` 2、B= A:2:3:1A=hostname2B=(hostname)
read -p 定义提示用户输入的信息:
read -p “Who are you?” name
read -s 隐藏定义的密码:
read -s -p “Input your name?” name
read -n 5 -p “Input name:“pass 输入限制长度的字符数:
read -t 3 -p “Input your name “: name 在固定时间内输入?
使用文件内容给变量进行赋值:
read -p “请输入Ip地址:” Ip<ip.txt
declare -i A=123给变量指定类型:
如果重新给变量赋值字符串如:A=name
echo $A将会出现A =0
declare -r B=hello 变量只读,不能修改,也不可以重新赋值。
AAA =heima
env| grep AAA 查找不到声明的变量
export AAA 将环境变量导出
env | grep AAA 就可以找到声明的变量了
declare -x BBBB=itcast
env | grep BBBB
编译一个脚本注释 :
#!/bin/bash 或者 #!/bin/env bash
#!/bin/env bash 这一种比较优良,可以自动寻找解释器的位置。
变量的分类:
本地变量: A=hello (只针对当前进程生效)
环境变量 declare -x BBBB=itcast
或者 export DDD=988
查看临时变量和环境变量 (当前进程和子进程可以调用)
复制粘贴行: yyp
$# 脚本后面所传参数
$0 脚本名称
$* $是脚本后面传的所有参数值
$$ 当前进程号
/bin/dash
查看当前终端后台进程号: jobs
sleep 500 & 放在后台运行
sleep 500 ctrl+z 暂停运行
! 后 台 运 行 最 后 一 个 进 程 号 ! ! 后台运行最后一个进程号 ! !! 调用最后一条命令的历史中参数
查看用户之间的关系: ps auxf | grep bash
简单的四则运算,shell只能支持简单的整数计算
echo $((1+1))
echo $((10-5))
echo [78
12]
求余: echo [10%7]
expr 1 + 1 :注意空格分隔
expr 10 * 5 需要转义
expr 10 / 5 不需要转义
let n=n+1
let n*=2
let n=n**3 n的3次方
echo 1+1.5 | bc 计算小数
i=1;let i++; echo $i
j=1;let ++j;echo $j
给新的变量赋值:
unset i j
i=1;j=1;
let x=i++
let y=++j
结果x=1 y=2
man test 查询 条件判断的相关参数
echo $? 查询上条命令是否为真 返回0为真,否则为假
test -e file 判断文件是否存在。
[ -d dir1 ];echo $? 判断文件夹是否存在;
ln -s file1 test1 创建一个链接文件
[ -L test1 ]; echo $? 判断是否为一个软链接返回0为真,否则为假
[[ -f test1 ]]; echo $? 判断文件是否存在并且为一个普通文件
[ ! -d dir2 ];echo $? 判断文件不存在
test -r file;echo $? 判断该文件是否有可读权限
test file -nt file2 判断file 是否比file2新
test file -ot file2 判断file 是否比file2老
[ file -ef file2 ];echo $? 判断file 跟file2是否为一个文件
test -z “hello word”;echo $? 判断字符串是否为空
test -n “hello word”;echo $? 判断字符串是否为非空
test “hello”=“world”;echo $? 判断是否相等
[ 1 -eq 2 ];echo $? 等于
[ 1 -ne 2 ];echo $? 不等于
[ 1 -le 2 ];echo $? 小于等于
多重判断条件 && , || -o
[ 1 -eq 2 && 1 -ne 0 ] 前面条件为真,才会执行后面的条件
[ 1 -eq 2 || 1 -ne 0 ] 前面条件为假,才会执行后面的条件
id -u 打印当前用户的id
[ $(id -u) -eq 0 ] && echo “admin”
[ $(id -u) -eq 0 ] || echo “is not admin”
[ $(id -u) -eq 0 ] && echo “is admin” || echo “is not admin”
多个条件时候是从左到右执行
(( 1==1 ));echo $?
(( 1<=2 ));echo $?
(())做判断
(( a=2 ));echo $? 给a赋值
[]和[[]]的区别:
A=”” [ $A =hello ];echo $A 这个会报错,必须给字符串加上””
[[ $A = hello ]];echo $A
[ -e test1 -a -L test1 ];echo $? 判断文件是否为软链接。
[]一个中括号不能使用逻辑运算符,[[]]才可以
ll -i 查看文件的节点
file -s file1 判断这个文件是否非空

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值