Shell语法(1)--变量的定义和使用

2020-04-27  本文已影响0人  刘小厨

简述

Shell语法在编译Android底层库时,经常会用到,是用户使用 Linux的桥梁。

在Android开发中使用shell能够 :

使用shell需要我们提前准备好一台linux的服务器,连接linux服务器可以使用:winSCP+putty的方式(其它自行百度);

备注:新手执行shell命令时可能会遇到的问题:
①执行ls没反应--原因:可能是因为该目录下没有文件。
②执行./demo.sh(文件名为demo)时候提示:Permission denied(没有权限),可以执行chmod 777 demo.sh给最高权限,也可以将文件开头写成#!/bin/sh 通过sh 文件名执行,这样不需要给每个文件都指定权限

下面简单介绍基本使用 :
shell中#号表示注释().sh文件的第一行除外)
执行echo $BASH
输出/bin/bash,确认是shell的bash环境
执行vim demo.sh
创建一个shell可执行文件,第一行固定写
#!/bin/bash
注:键盘的insert键编辑文件,保存退出点esc退出输入状态后 输入 :wq 回车(和git的保存退出一样)

#!/bin/bash
#第一行固定写法,后面#号表示注释,shell的输出用echo,下面表示输出test
echo "test"

然后通过执行./demo.sh执行文件:
控制台输出test
如控制台提示Permission denied看上述备注②

局部变量变量

shell是典型的弱类型语言,示例:

#!/bin/bash
# 声明变量A=10,等号左右两边不能有空格!!!!!!
A=10
#$引用变量
echo $A

执行./demo.sh,控制台输出10

环境变量

类比Java中的环境变量
内置环境变量例如: PWD表示当前目录

#!/bin/bash
#输出当前路径
echo $PWD

执行输出/root表示当前在/root文件夹
内置的环境变量可以直接在命令行调用,命令行输入pwd一样输出/root

系统环境变量有以下参数:

参数
举个栗子:
我们将demo.sh修改如下:
#!/bin/bash
#$0表示当前程序名称
echo $0
#$1传入的第一个参数
echo $1
#$2传入的第二个参数
echo $2

执行./demo.sh 参数1 参数2,传递参数一定要加空格,多个参数空格隔开
控制台输出

./demo.sh
参数1
参数2

打印了当前程序名,和入参,$n如果不传参数,不会有内容输出

看一下剩下的参数含义?,*,$#,修改demo.sh如下:

#!/bin/bash
echo $0
echo $1
echo $2

echo "-------------"

echo "\$?表示: $?"
echo "\$*表示: $*"
echo "\$#表示: $#"

执行./demo.sh 参数1 参数2
输出:

./demo.sh
参数1
参数2
-------------
$?表示: 0
$*表示: 参数1 参数2
$#表示: 2

其中: $?表示上一个命令执行是否成功0表示成功,其它表示失败,很常用~
$* 表示所有参数
$# 表示参数的个数

上一篇 下一篇

猜你喜欢

热点阅读