当前位置: 首页 > news >正文

电商网站建设文献韶关做网站需要多少钱

电商网站建设文献,韶关做网站需要多少钱,深圳做手机网站,网店推广的渠道有哪些本文旨在对y总的Linux基础课shell语法做学习记录#xff0c;指令较多#xff0c;方便日后查找。 参考视频#xff1a;Linux基础课 参考教程#xff1a;Linux教程 1 概论 Linux中常见的shell脚本有很多种#xff0c;常见的有#xff1a; Bourne Shell(/usr/bin/sh或/bi…本文旨在对y总的Linux基础课shell语法做学习记录指令较多方便日后查找。 参考视频Linux基础课 参考教程Linux教程 1 概论 Linux中常见的shell脚本有很多种常见的有 Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/usr/bin/csh)K Shell(/usr/bin/ksh)zsh… Linux系统中一般默认使用bash文件开头需要写#! /bin/bash指明bash为脚本解释器 示例 mkdir -p Test vim test.sh i:进入编辑模式 #! /bin/bash echo helloEsc:退出编辑模式 :wq 保存并退出 运行方式 作为可执行文件 chmod x test.sh: 使脚本具有可执行权限 ./test.sh: 当前路径下执行 /home/XXX/test.sh: 绝对路径下执行 ~/test.sh: 家目录路径下执行用解释器执行 bash test.sh 2 注释 单行注释 每行中#之后的内容均是注释 #! /bin/bash echo Hello World # 这是注释多行注释 格式 :EOF 第一行注释 第二行注释 第三行注释 EOFEOF可以换成其它任意字符串(abc,!) 3 变量 定义变量 abig # 单引号定义字符串 bbig # 双引号定义字符串 cbig # 也可以不加引号同样表示字符串使用变量 $或者${}花括号是可选的主要为了帮助解释器识别变量边界 namebigdavid echo $name echo ${name} echo ${name}big # 输出bigdavidbig只读变量 使用readonly或者declare可以将变量变为只读 namebigdavid readonly name declare -r namenameabc ##报错因为变量只读删除变量 unset可以删除变量 namebigdavid unset name echo $name # 输出空行变量类型 自定义变量局部变量 子进程不能访问的变量环境变量全局变量 子进程可以访问的变量 自定义变量-环境变量 namebigdavid export name # 方法一 declare -x name # 方法二环境变量-自定义变量 export namebigdavid # 定义环境变量 declare x name # 改为自定义变量字符串 字符串可以用单引号也可以用双引号也可以不用引号 单引号与双引号的区别 单引号中的内容会原样输出不会执行、不会取变量双引号中的内容可以执行、可以取变量 namebigdavid echo sd,$name # 输出 sd,$name echo sd,$name # 输出 sd,bigdavid获取字符串长度 namebigdavid echo ${#name} # 输出8提取子串 namebigdavid echo ${name:0:3} # 提取从0开始的3个字符 输出bigTip: 1定义变量时等号两边不能有空格 2定义变量的时候变量都是字符串但当变量需要是整数时会自动把变量转换成整数 3被声明为只读的变量无法被unset删除 4字符串中不加引号和双引号效果相同 5如果一个变量不存在的话他的值是空字符串 6默认变量是局部变量自定义变量 7左闭右开取子串 4 默认变量 文件参数变量 在执行shell脚本时可以向脚本传递参数。 $1是第一个参数$2是第二个参数以此类推。特殊的$0是文件名包含路径 示例 创建文件vim test.sh #! /bin/bash echo 文件名$0 echo 第一个参数$1 echo 第二个参数$2 echo 第三个参数$3 echo 第四个参数$4执行脚本 chmod x test.sh ./test.sh 1 2 3 4 输出 文件名./test.sh 第一个参数1 第二个参数2 第三个参数3 第四个参数4 Tip:向脚本传递参数时参数个数超过一位需要用大括号括起来 echo ${10} 其它参数相关变量 $#:代表文件传入的参数个数 $*:由所有参数构成的用空格隔开的字符串 $1 $2 $3 $4 $:每个参数分别用双引号括起来的字符串如上例中值为$1 $2 $3 $4 $$:脚本当前运行的进程ID $?:上一条命令的退出状态,0表示正常退出其他值表示错误。(不是stdout而是exit code) $(command):返回command这条命令的stdout可嵌套 可嵌套 和 (不可嵌套) 区别是:可嵌套就是可以实现多个命令 #! /bin/bash namebig echo $(echo $name namesd echo $name)输出 bigdavid asd 5 数组 数组中可以存放多个不同类型的值只支持一维数组初始化时不需要指明数组大小。 数组下标从0开始。 定义 数组用小括号表示元素之间用空格隔开 array(1 abc def) array[0]1 array[1]abc array[2]def读取数组中某个元素的值 echo ${array[index]} 读取整个数组 ${array[]} ${array[*]} 数组长度 ${#array[]} ${#array[*]} Tip: 在读取整个数组时未定义的部分就不会显示。比如定义了array[0]array[1]array[2]array[1000],利用echo ${array[]}输出时只会显示我们定义的数组那4个元素的值。长度时结果是4而不是1000 6 expr命令 expr 表达式命令用于求表达式的值 用空格隔开每一项用反斜杠放在shell特定的字符前面发现表达式运行错误时可以试试转义对包含空格和其他特殊字符的字符串要用引号括起来expr会在stdout中输出结果。如果为逻辑关系表达式则结果为真时stdout输出1否则输出0expr的exit code如果为逻辑关系表达式则结果为真时exit code为0否则为1 字符串表达式 1length XXX:返回XXX的长度 2index XXX YYY:YYY中任意单个字符在XXX中最前面的字符位置下标从1开始。如果XXX中完全不存在YYY中的字符则返回0。 3substr XXX A B:返回XXX字符串中从A开始长度最大为B的子串。如果A或B为负数0或非数值则返回空字符串 示例 strHelloecho expr length $str #输出5 echo expr index $str l#输出3 echo expr substr $str 2 3#输出ell整数表达式 expr支持普通的算术操作 优先级字符串表达式 算术表达式 逻辑关系表达式 -:加减运算。两端参数会转换为整数如果转换失败则报错。* / %:乘除取模运算。两端参数会转换为整数如果转换失败则报错。 ():可以改变优先级但需要用反斜杠转义 a3 b4echo expr $a $b # 输出7 echo expr $a - $b # 输出-1 echo expr $a \* $b # 输出12*需要转义 echo expr $a / $b # 输出0整除 echo expr $a % $b # 输出3 echo expr \( $a 1 \) \* \( $b 1 \) # 输出20值为(a 1) * (b 1)逻辑关系表达式 | 如果第一个参数非空且非0则返回第一个参数的值否则返回第二个参数的值但要求第二个参数的值也是非空或非0否则返回0。如果第一个参数是非空或非0时不会计算第二个参数。:如果两个参数都非空且非0则返回第一个参数否则返回0。如果第一个参为0或为空则不会计算第二个参数。 ! :比较两端的参数如果为true则返回1否则返回0。””是””的同义词。”expr”首先尝试将两端参数转换为整数并做算术比较如果转换失败则按字符集排序规则做字符比较。():改变优先级但需要用反斜杠转义 Tip: (1)乘法运算的 * 的使用除转义外还有直接加单引号这种方式也可以 echo expr $a * $b(2)单引号表示原生字符串单引号里面的是啥就是啥双引号会把字符串格式化 strHello World! echo expr length $str # 输出为4原始字符串$str echo expr length $str # 输出为12变量值为Hello World!7 read命令 read命令用于从标准输入中读取单行数据。当读到文件结束符时exit code为1否则为0。 参数 -p: 后面可以接提示信息-t后面跟秒数定义输入字符的等待时间超过等待时间后会自动忽略此命令 read name# 读入name的值 bigdavid #标准输入 echo $name # 输出name的值 bigdavid #标准输出 read -p Please input your name: -t 3 name # 读入name的值等待时间3秒 Please input your name: bigdavid # 标准输入 echo $name # 输出name的值 bigdavid #标准输出Tip: -t 和 -p 的顺序不影响实际效果 8 echo命令 echo用于输出字符串。 显示普通字符串 echo sad echo asd显示转义字符 echo \df\ echo \sd\显示变量 namebigdavid echo sd is $name显示换行 echo -e hi\n # -e 开启转义显示不换行 echo -e Hi \c # -e 开启转义 \c 不换行显示结果定向至文件 将内容以覆盖的方式输出到output.txt中 echo Hello World output.txt原样输出字符串不进行转义或取变量(用单引号 namebigdavid echo $name\显示命令的执行结果 echo date echo $(date)Tip: 1查看echo相关转移字符在终端输入 help echo 2输出内容定向文件时哪里的文件都可以定向如果不是同一文件下那要把路径写清楚如果定向的文件不存在会默认给你新建一个文件 9 printf命令 printf命令用于格式化输出类似于C/C中的printf函数。 默认不会在字符串末尾添加换行符 格式 printf format-string [arguments...] 示例 printf %10d.\n 123 # 占十位右对齐 printf %-10.2f.\n 123.1234 # 占10位保留2位小数左对齐 printf %s bigdavid # 格式化输出字符串 printf %d * %d %d\n 2 3 expr 2 /* 310 test命令与判断符号[] 逻辑运算符和|| 表示与|| 表示或短路原则 (1)expr1 expr2当expr1为假时直接忽略expr2 (2)expr1 || expr2当expr1为真时直接忽略expr2表达式的exit code为0表示真为非零表示假。与C/C中的定义相反 test命令 终端输入help test或man test,查看test命令的用法。 1test命令用于判断文件类型以及对变量做比较。 2test命令用exit code返回结果而不是使用stdout。0表示真非0表示假。 文件类型判断 判断文件是否存在 格式test -e filename 测试参数代表意义-e文件是否存在-f是否为文件-d是否为目录 文件权限判断 判断文件是否可读 格式test -r filename 测试参数代表意义-r文件是否可读-w文件是否可写-x文件是否可执行-s是否为非空文件 整数间的比较 a是否等于b 格式test $a -eq $b 测试参数代表意义-eqa是否等于b-nea是否不等于b-gta是否大于b-lta是否小于b-gea是否大于等于b-lea是否小于等于b 字符串比较 测试参数代表意义test -z STRING判断STRING是否为空如果为空则返回truetest -n STRING判断STRING是否非空如果非空则返回true-n可以省略test str1 str2判断str1是否等于str2test str1 ! str2判断str1是否不等于str2 多重条件判定 格式test -r filename -a -x filename 测试参数代表意义-a两条件是否同时成立-o两条件是否至少一个成立!取反。如 test ! -x file当file不可执行时返回true 判断符号[] []与test用法几乎一模一样更常用于if语句中。另外[[]]是[]的加强版支持的特性更多 当使用[]出现[: -eq: unary operator expected的错误时可以使用[[]]。 [ 2 -lt 3 ] # 为真返回值为0 echo $? # 输出上个命令的返回值输出0Tip: []内的每一项都要用空格隔开中括号内的变量最好用双引号括起来中括号内的常数最好用单或双引号括起来 -eq equal相等 -ne not equal不等 -gt greater than大于 -ge greater than or equal大于或等于 -lt less than小于 -le less than or equal小于或等于 11 判断语句 if…then形式(类似于C/C中的if-else语句) 单层if if condition then语句1语句2... fi单层if-else if condition then语句1语句2... else语句1语句2... fi多层if-elif-elif-else if condition then语句1语句2... elif condition then语句1语句2... else语句1语句2... ficase…esac形式 类似与C/C的switch语句 示例 a4case $a in1)echo ${a};; # 类似于C/C中的break2)echo ${a};;3)echo ${a};;*) # 类似于C/C中的defaultecho 其他;; esac 12 循环语句 for...in...do...done 格式 for var in val1 val2 val3 do语句1语句2... done实例 1输出a 2 cc每个元素一行 for i in a 2 cc doecho $i done2输出当前路径下的所有文件名每个文件名一行 for file in ls doecho $file done3输出1-10 for i in $(seq 1 10) doecho $i done4使用{1..10} 或者 {a..z} for i in {a..z} doecho $i donefor ((…;…;…)) do…done 格式 for ((expression; condition; expression)) do语句1语句2 donefor ((i1; i10; i)) doecho $i donewhile…do…done循环 格式 while condition do语句1语句2... done文件结束符为Ctrld输入文件结束符后read指令返回false while read name doecho $name doneuntil…do…done循环 当条件为真时结束 格式 until condition do语句1语句2... done当用户输入yes或者YES时结束否则一直等待读入。 until [ ${word} yes ] || [ ${word} YES ]do read -p Please input yes/YES to stop this program: word done break命令 跳出当前一层循环注意与C/C不同的是break不能跳出case语句。 实例 while read name do for ((i1; i10; i))docase $i in8)break;;*)echo $i;;esacdonedone该示例每读入非EOF的字符串会输出一遍1-7。 该程序可以输入Ctrld文件结束符来结束也可以直接用Ctrlc杀掉该进程 continue命令 跳出当前循环 实例 for ((i1; i10; i)) doif [ expr $i % 2 -eq 0]thencontinuefiecho $i done该程序输出1-10中的所有奇数 死循环的处理方式 遇到死循环输入Ctrlc 关闭进程 使用top命令找到进程的PID输入kill -9 PID即可关掉此进程ps aux返回当前打开的所有进程 13 函数 bash中的函数类似于C/C中的函数但return的返回值与C/C不同返回的是exit code取值为0-2550表示正常结束,注意区别。 函数的return值可以通过echo $?来获取 如果想获取函数的输出结果可以通过echo输出到stdout中然后通过$(function_name)来获取stdout中的结果。 格式 [function] func_name() {语句1语句2... }不获取 return值和stdout值 func() {namebigdavidecho $name }func获取 return值和stdout值 不写return时默认return 0 func() {namebigdavidecho $namereturn 123 }output$(func) ret$?echo output $output echo return $ret函数的输入参数 在函数内$1表示第一个输入参数$2表示第二个输入参数依此类推。 注意函数内的$0仍然是文件名而不是函数名 func() { # 递归计算 $1 ($1 - 1) ($1 - 2) ... 0wordwhile [ ${word} ! y ${word} ! n ]doread -p 要进入func($1)函数嘛?请输入y/n: worddoneif [ $word n ]thenecho 0return 0fiif [ $1 -le 0 ]thenecho 0return 0fisum $(func $(expr $1 - 1))echo $(expr $sum $1) }echo $(func 10)函数内的局部变量 可以在函数内定义局部变量作用范围仅在当前函数内。 可以在递归函数中定义局部变量。 格式local 变量名变量值 #! /bin/bashfunc() {local namebigdavidecho $name } funcecho $name输出结果 bigdavid 第一行为函数内的name变量第二行为函数外调用name变量会发现此时该变量不存在 shell语法中函数的变量若无声明 就默认是全局变量 14 exit命令 exit命令用来退出当前shell进程并返回一个退出状态使用$?可以接收这个退出状态。 exit命令可以接受一个整数值作为参数代表退出状态。如果不指定默认状态值是 0。 exit退出状态只能是一个介于 0~255 之间的整数其中只有 0 表示成功其它值都表示失败。 创建脚本test.shvim test.sh #! /bin/bashif [ $# -ne 1 ] thenecho not validexit 1 elseecho validexit 0 fichmod x test.sh ./test.sh bigdavid #正常退出 echo $? # 0 ./test.sh #不正常退出 echo $? # 1return和exit的共同之处都是返回exit code区别是return结束当前函数exit结束整个shell脚本 15 文件重定向 每个进程默认打开3个文件描述符 stdin标准输入从命令行读取数据文件描述符为0stdout标准输出向命令行输出数据文件描述符为1stderr标准错误输出向命令行输出数据文件描述符为2 可以用文件重定向将这三个文件重定向到其他文件中 重定向命令列表 命令说明command file将stdout重定向到file中command file将stdin重定向到file中command file将stdout以追加方式重定向到file中command n file将文件描述符n重定向到file中command n file将文件描述符n以追加方式重定向到file中 输入和输出重定向 echo -e Hello \c output.txt # 将stdout重定向到output.txt中 echo World output.txt # 将字符串追加到output.txt中read str output.txt # 从output.txt中读取字符串 echo $str # Hello World同时重定向stdin和stdout #! /bin/bashread a read becho $(expr $a $b)创建input.txt:vim input.txt 内容 3 4 chmod x test.sh # 从input.txt中读取内容将输出写入output.txt中 ./test.sh input.txt output.txt cat output.txt # 查看output.txt中的内容ls -l 文件 列表的内容写入文件a.txt中 覆盖写ls -al 文件 列表的内容文件追加到文件aa.txt的末尾cat 文件1 文件2 将文件1的内容覆盖到文件2echo “内容” 文件 (将echo的内容追加到文件末尾) 16 引入外部脚本 类似于C/C中的includebash也可以引入其他文件的代码 格式 . filename # 注意点和文件名之间有一个空格 或 source filename示例 vim test1.sh #! /bin/bash namebigdavidvim test2.sh #! /bin/bash source test1.sh # . test1.sh echo $name输出 bigdavid引入的文件可以添加路径比如使用绝对路径source /home/XXX/test1.sh 本文介绍了shell语法的常见用法不足之处望指正。
http://www.yingshimen.cn/news/30820/

相关文章:

  • 刷业务网站怎么做php网站的数据库在哪
  • 中国互联网协会官方网站男女做那些事免费网站
  • 做调查的网站‘关于建立网站的计划
  • 学校展示型网站建设方案书wordpress 怎么读
  • 结合七牛云做视频网站丹东商城网站建设
  • 天津网站排名提升多少钱网站没有关键词
  • 宁波建设网站公众号关注做ps彩图什么网站好
  • 邳州网站制作皮革城网站建设方案
  • seo新站如何快速排名网站建设营业执照
  • 做cpa用什么网站wordpress后门插件
  • wordpress 站群xmlrpc做动态h5的网站
  • 单页网站定义给别人做软件的网站
  • 中学生网站制作网站建立时间怎么查
  • 长沙做黄叶和网站的公司有哪些做网站优化给业务员提成
  • 威海临港区建设局网站标志空间网站
  • 帝国cms灵动标签做网站地图wordpress怎么做多级分类
  • 网站统计查询做暧电影在线观看网站
  • 网站后台点击添加图片没有反应青提wifi小程序开发教程
  • 域名备案的网站建设书网络seo天津
  • 自学网站建设快吗wordpress美化导航菜单
  • 做医院健康专题网站seo服务包括哪些
  • 惠州做棋牌网站建设哪家技术好现在建设一个网站多少钱
  • 电脑做微信推送的网站公司公关
  • 手机网站页面如何制作上海手机网站建设哪家好
  • 做家装的网站有什么wordpress 页面列表显示
  • 百度站内搜索的方法艺术家网站建设中企业网站建设的策划初期的一些误区
  • 无锡滨湖区建设局网站旧房装修 翻新的公司
  • 成都网站建设哪儿济南兴田德润怎么联系如何提高网站在搜索引擎中的排名
  • 精仿手表网站安徽全网优化
  • 教做宝宝衣服的网站北京原创先锋网络科技发展有限公司