【Shell】part1-Shell-基础入门篇

part1-基础入门

HelloWorld

创建,编写,运行 Shell 脚本

vim test.sh

#!/bin/bash
echo "Hello World !"

# 1.作为可执行程序运行
chmod a+x ./test.sh  
#使脚本具有执行权限
./test.sh  
#执行脚本

# 2.作为解释器参数运行
/bin/sh test.sh
/bin/php test.php

变量

变量赋值

定义变量时,变量名不加美元符号($,PHP语言中变量需要)

your_name="runoob"

# 
for file in `ls /etc`for file in $(ls /etc)

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号即可

your_name="qinjx"
echo $your_name
echo ${your_name}

# 
for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

删除变量

#!/bin/sh
myUrl="https://www.google.com"
unset myUrl
echo $myUrl

变量类型

# 字符串
my_string='Hello, World!'或者my_string="Hello, World!"

# 整数
declare -i my_integer=42

# 数组

# 索引数组
my_array=(1 2 3 4 5)

# 关联数组
declare -A associative_array
associative_array["name"]="John"
associative_array["age"]=30

# 环境变量
echo $PATH

# 特殊变量
特殊变量在 Shell 中具有特殊含义
$0 表示脚本的名称,$1, $2, 等表示脚本的参数。
$
#表示传递给脚本的参数数量,$? 表示上一个命令的退出状态等

Shell字符串

字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。


# 单引号
str='this is a string'
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

# 双引号
your_name="runoob"
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
双引号里可以有变量
双引号里可以出现转义字符

# 拼接字符串
your_name="runoob"

# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1

# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
#单引号中变量无效
echo $greeting_2  $greeting_3

# 获取字符串长度
string="abcd"
echo ${
#string}   
# 输出 4

# 提取子字符串
string="runoob is a great site"
echo ${string:1:4} 
# 从第 2 个字符开始截取 4 个输出 unoo

# 查找子字符串
string="runoob is a great site"
echo `expr index "$string" io`  
# 查找字符 i 或 o 的位置输出 4

Shell 数组`

bash支持一维数组(不支持多维数组),并且没有限定数组的大小,支持下标访问.


# 定义数组
array_name=(value0 value1 value2 value3)

# 读取数组
${数组名[下标]}
valuen=${array_name[n]}
echo ${array_name[@]}

# 获取数组的长度
取得数组元素的个数
length=${#array_name[@]} 或者 length=${#array_name[*]}
取得数组单个元素的长度
length=${#array_name[n]}

注释

# 单行注释就是#
# 多行注释 ': + 空格 + 单引号'
: '
注释内容...
注释内容...
注释内容...
'

Shell 传递参数

使用 $1、$2 等来引用传递给脚本的参数,其中 $1 表示第一个参数,$2 表示第二个参数, $0 为执行文件名

# 编写脚本
#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

# 执行脚本
$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
特殊字符说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@ ∗ 相同,但是使用时加引号,并在引号中返回每个参数。如 " *相同,但是使用时加引号,并在引号中返回每个参数。如" 相同,但是使用时加引号,并在引号中返回每个参数。如"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

编写脚本

#!/bin/bash
echo "Shell 传递参数实例!";
echo "第一个参数为:$1";
echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

执行脚本

$ chmod +x test.sh 
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值