Shell 脚本进入编辑模式和保存退出

您所在的位置:网站首页 DFQ文件怎么打开和保存 Shell 脚本进入编辑模式和保存退出

Shell 脚本进入编辑模式和保存退出

2024-07-12 23:57| 来源: 网络整理| 查看: 265

1.概述

Shell 既是一个连接用户和 Linux 内核的程序,又是一门管理 Linux 系统的脚本语言,shell 脚本类似 windows 的批处理文件,shell 脚本就是将连续执行的命令写成一个文件。 shell 脚本提供数组、循环、条件判断等功能

2.文件保存并退出

1、在vi命令下,先按键盘esc键,再按(英文冒号) 2、输入"wq" 3、回车即可保存并退出vi命令,回到主shell界面

3.进入编辑模式

进入到目录下 vi +文件名称 如果是system下的文件需要先remount mount -o rw,remount /system 然后 busybox vi +文件名称

4.shell脚本基本命令

echo 命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。输出字符串时,可以省略掉引号。 echo命令默认在末尾添加换行符。

printf 命令 printf 命令模仿 C 程序库(library)里的 printf() 程序。标准所定义,因此使用printf的脚本比使用echo移植性好。 printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n

test命令 shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试

-eq 等于则为真

-ne 不等于则为真

-gt 大于则为真

-ge 大于等于则为真

-lt 小于则为真

-le 小于等于则为真

注意脚本中不要出现;特殊字符 #!/system/bin/sh m=30 echo "打印变量赋值" echo "m=$m" echo "第一种for循环方式" for i in $(seq 1 10) do echo "i=$i" done echo "第二种for循环方式" for j in `seq 1 10` do echo "j=$j" done echo "-eq相等,-ne不等,-gt大于,-lt小于,-ge大于等于,-le小于等于" echo "while循环1 ge大于0" a=5 while [ $a -ge 0 ] do echo "a=$a" a=$a-1 done echo "while循环2 gt小于5" a=0 while [ $a -lt 5 ] do echo "a=$a" a=$a+1 done for k in `seq 1 10` do echo "k=$k" if [ $k -ge 3 ] then echo "超编停止" break else echo "继续" fi done systemmode=$(getprop "ro.product.system.model") echo "mode:$systemmode" echo "data:$(date "+%Y%m%d%H%M%S")" echo "data1:$(date "+%Y-%m-%d %H:%M:%S")" echo "data2:$(date "+%Y.%m.%d %H:%M:%S")" echo "你输入的数字为:" read num echo "number=$num" case $num in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;; esac a="abc" b="efg" if [ $a != $b ] then echo "$a != $b : a 等于 b" else echo "$a != $b: a 不等于 b" fi number=1 while(( $number \ < 比较大小的时候 可以使用大于号,小于号,但是需转义。例如 [ “2006.01.23” > “2005.03.01” ] && echo dayu || echo budayu 数字的判断

int1 -eq int2    两数相等为真 int1 -ne int2    两数不等为真 int1 -gt int2    int1大于int2为真 int1 -ge int2    int1大于等于int2为真 int1 -lt int2    int1小于int2为真 int1 -le int2    int1小于等于int2为真 文件的判断

-r file     用户可读为真 -w file     用户可写为真 -x file     用户可执行为真 -f file     文件为正规文件为真 -d file     文件为目录为真 -c file     文件为字符特殊文件为真 -b file     文件为块特殊文件为真 -s file     文件大小非0时为真 -t file     当文件描述符(默认为1)指定的设备为终端时为真 复杂逻辑判断

-a         与 -o        或 !        非

上面的三种写在括号内,对应的 && || 写在中括号之间。

例如, if [ "$a" eq 1 -o "$b" eq 2 ] && [ "$c" eq 3 ] 字符串匹配 if [ `echo $str | grep -e regexp` ];then . 数字的样例: #!/bin/sh var_1=$1 var_2=$2 echo "var_1=${var_1}" echo "var_2=${var_2}" if [ ${var_2} -eq ${var_1} ] ; then echo "var_2:{$var_2} == var_1:{$var_1}" elif [ ${var_2} -gt ${var_1} ] ; then echo "var_2:{$var_2} > var_1:{$var_1}" else echo "var_2:{$var_2} < var_1:{$var_1}" fi ./test.sh 10 10 var_1=10 var_2=10 var_2:{10} == var_1:{10} 字符串的样例: #!/bin/sh var_1=$1 var_2=$2 echo "var_1=${var_1}" echo "var_2=${var_2}" if [ ${var_2} = ${var_1} ] ; then echo "var_2:{$var_2} == var_1:{$var_1}" fi ./test.sh a a var_1=a var_2=a var_2:{a} == var_1:{a}

case语句:

第一种: case分支语句的格式如下:

case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ;; esac

例如: case $(uname -s) in Darwin) ANDROID_EMULATOR_PREBUILTS=$T/prebuilts/android-emulator/darwin-x86_64 ;; Linux) ANDROID_EMULATOR_PREBUILTS=$T/prebuilts/android-emulator/linux-x86_64 ;; *) ANDROID_EMULATOR_PREBUILTS= ;; esac Demo: #!/bin/sh var_1=$1 echo "var_1=${var_1}" case $var_1 in user) echo "var_1 is user" ;; eng) echo "var_1 is eng" ;; userdebug) echo "var_1 is userdebug" ;; *) echo "var_1 is not one of (user,eng,userdebug)" ;; esac

循环:

形式一:

while …; do … done

形式二:

for var in …; do … done

for i in {1…6}; do echo $i done

1 2 3 4 8.Shell脚本编程需要注意事项

1.shell脚本名称命名一般为英文的大写,小写;不能用特殊符号,空格来命名;一般以脚本功能命名。

2.shell脚本后缀以.sh结尾

3.shell脚本内容首行需以#!/bin/bash开头

4.shell脚本中变量名称尽量使用大写字母,字母间不能使用“-“,可以使用”_“; 不能以数字,特殊符号开头

结构:声明-注释-代码

功能:接收参数;处理参数

示例:使用vim编写一个shell脚本

[root@007 桌面]# echo $SHELL


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3