Shell学习笔记一

shell使用脚本

创建**.sh 文件,**.sh文件就是脚本文件

#!/bin/bash
#(#!) 选择使用的解释器 /bin/bash是常用的解释器
#下面可以写shell命令 ,运行脚本会依次执行命令

执行脚本

以test.sh为例

chmod +x test.sh #给脚本文件添加执行权限,如果有执行权限 不用添加
./test.sh #执行脚本
/bin/bash test.sh #执行脚本
  • 不能用 test.sh,需要用./test.sh执行脚本使用 test.sh 系统会在PATH里寻找 test.sh,当前目录如果不在系统PATH目录中时,系统不能找到这个文件
  • /bin/bash test.sh
    使用这个解释器 执行这个文件,这样执行的时候 不需要在文件首行定义解释器,定义了也会使用命令中的解释器执行,
    会寻找当前目录下的文件,可以不使用 ./test.sh寻找文件

Shell变量

显示赋值
url="www.shell.com"

定义变量规则

  • 命名只能使用英文字母,数字和下划线,首个字符不能使用数字
  • 变量中间不能出现空格,可以使用下划线
  • 等号(=)两边不能出现空格
  • 不能使用除下划线以外的其他符号
  • 不能使用关键字
  • 大小写区分,大小写不同时为不同的变量
语句赋值
for file in `ls /usr`;do echo $file;done
for file in $(ls /usr) ;do echo $file;done

循环遍历赋值
do 为每次循环的时候执行的命令
done结束语句
$file 只能保存最后一个循环出来的结果

使用变量

test="shell"
echo $test
echo ${test}
readonly test
readonly aaaa="readonly"

变量使用有两种方法 在跟字符串一起使用时 中间没有空格的时候可以使用第二种方法来识别变量的边界
readonly设置只读变量,设置以后无法更改,重新赋值会报错,只有注销当前shell才能解除只读变量的设定

readonly
  • -f:定义只读函数;
  • -a:定义只读数组变量;
  • -p:显示系统中全部只读变量列表

字符串中使用变量

skill="java"
echo "I am good at ${skill}Script"
# I am good at javaScript
echo 'I am good at ${skill}Script'
# I am good at ${skill}Script
  • 双引号可以识别变量,双引号里可以出现转义字符
  • 单引号不能识别变量,单引号里的任何字符都会原样输出
  • 双引号中间可以使用转义后的双引号
  • 单引号中间不能出现单引号(转义后也不行)

删除变量

unset test

删除后的变量不能使用,只读变量不能被删除

变量类型

  • 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

处理字符串的方法

test="asdfg"
echo ${#test}
#5
echo ${test:1:2}
#sd
echo ` expr index "$test"  d`
#3
  • ${#***} 可以计算变量字符串的长度
  • ${***:a:b} a,b为数字,从a开始截取b个字符,字符第一位是0
  • expr index "变量" d 在变量中查询d出现的位置,需要使用反引号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值