shell基本知识

bash脚本基础教程

#!/bin/bash

"#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。

更改脚本文件的执行权限

chmod 7 test.bash  -----   7的分配:读(4)写(2)执行(1)(bash的解释器兼容sh的解释器)

执行脚本的时候需要加./告知shell执行器在当前目录下寻找该shell(linux的path路径下只有/bin, /sbin, /usr/bin,/usr/sbin

也可以将脚本作为解释器的参数执行

 1 /bin/sh test.sh

 test:

 

1 echo "what's your name?"
2 read PERSON
3 echo "Hello,$PERSON"

 

变更权限:chmod 7 ./tesh.sh

定义变量

定义变量时,变量名不加美元符号($),如:

  1. variableName="value"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

myname="rensen"

readonly myname

myname="wangrensen"将会报错:/bin/sh: myname: This variable is read only.

删除变量:

java="hello"

unset java   unset不能删除只读变量

变量类型:

局部变量、环境变量、shell变量。

变量含义
$0当前脚本的文件名
$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$#传递给脚本或函数的参数个数。
$*传递给脚本或函数的所有参数。
$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到
$?上个命令的退出状态,或函数的返回值。
$$当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
a=10

echo -e "the value is $a \n"

输入-e表示对转义字符进行替换。若不用-e则会原样输出。(the value is $a \n)

对表达式求值

a=10

b=20

c=`expr $a + $b`
d=`expr $a - $b`
e=`expr $a \* $b`
f=`expr $a \ $b`
echo $c

定义数组,用空格隔开。

获取数组的长度

length=${array[@]}
length=${array[*]}
#获取单个元素的长度
lengthn=${array[n]}

显示结果重定向至文件:

echo "hello,world" > filename

需要原样输出字符串则可以用单引号

echo `date`显示当前日期。

 

转载于:https://www.cnblogs.com/rensen96/p/4004012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值