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

泉州网站设计山东公司网站推广优化

泉州网站设计,山东公司网站推广优化,成全视频免费观看在线看2024年新年贺词,做户外的网站在上一篇博客中,我们已经对Shell编程有了初步的认识,并对Shell的一些知识进行了梳理和应用,在这篇博客中,将衔接上一篇的内容,继续对Shell编程进行较为基础的讲解。如有需要的朋友,可以访问如下链接&#x…

        在上一篇博客中,我们已经对Shell编程有了初步的认识,并对Shell的一些知识进行了梳理和应用,在这篇博客中,将衔接上一篇的内容,继续对Shell编程进行较为基础的讲解。如有需要的朋友,可以访问如下链接,参考学习上一篇的内容:

Shell脚本编程基础篇(1)-CSDN博客https://blog.csdn.net/weixin_49337111/article/details/146092297?spm=1001.2014.3001.5502

1、shell数组

        一个数组中可以存放多个值,但在bash shell中,仅支持一维数组。在初始化时不需要定义数组大小,同C/C++类似,shell数组的下标也是从0开始,获取shell数组中的元素值时,需要借助下标实现。

(1)、定义数组

        用括号( )来定义表示数组,数组中各个元素之间用"空格"符号分割开。

#!/bin/bash#方法1
buf_demo1=(val1 val2 val3 val4)#方法2
buf_demo2=(
val1
val2
val3
val4    
)#方法3
buf_demo3[0]="Hello world.";
buf_demo3[1]="Good bye!";
buf_demo3[2]="Thank you";
buf_demo3[3]=".....";

(2)、读取数组

        获取shell数组元素的值,一般使用美元符号加大括号包围住数组名

①、读取数组的单个元素值:${array[index]}

#!/bin/bashbuf_demo=(5 4 3 2 1)echo "buf_demo[0]: ${buf_demo[0]}"
echo "buf_demo[1]: ${buf_demo[1]}"
echo "buf_demo[2]: ${buf_demo[2]}"
echo "buf_demo[3]: ${buf_demo[3]}"
echo "buf_demo[4]: ${buf_demo[4]}"

 ②、读取数组的全部元素:${array[*]}${array[@]}

#!/bin/bashbuf_demo=(9 'a' 7 6 5 'das' 3 2 d 0)echo "method1: ${buf_demo[@]}"
echo "method2: ${buf_demo[*]}"

(3)、获取数组长度

        在shell中,获取数组长度的方法和获取字符串长度的方法是一样的。相比于获取数组的全部元素命令,获取数组长度操作需要借助符号#

${#array[@]}

${#array[*]}

#!/bin/bashbuf_demo=('a' 1 'cat' 5 '666')echo "buf lenth: ${#buf_demo[@]}"
echo "buf lenth: ${#buf_demo[*]}"

(4)、关联数组

        shell中可以使用关联数组。关联数组中引入了键值对概念,并且关联数组的键是唯一的

        关联数组可以使用一个任意的字符串或数字作为数组的下标,通过该字符串或数字即可访问关联数组的对应元素。

        在应用关联数组前,需要使用declare声明定义一个数组作为关联数组。

        declare -A array

#!/bin/bash#方法1
declare -A buf_demo1=(["abc"]="123" ["def"]="456" ["hgk"]="789")echo "${buf_demo1["abc"]}"
echo "${buf_demo1["def"]}"
echo "${buf_demo1["hgk"]}"#方法2
declare -A buf_demo2=(
["111"]="aaaa"
["222"]="bbbb"
["333"]="cccc"
["444"]="dddd"
)echo "${buf_demo2["111"]}"
echo "${buf_demo2["222"]}"
echo "${buf_demo2["333"]}"
echo "${buf_demo2["444"]}"#方法3
declare -A buf_demo3buf_demo3["hello"]="welcome to this world"
buf_demo3["heihei"]="hahahah a"
buf_demo3["flower"]="this is a blue"
buf_demo3["water"]="the weather is so hot!"echo "${buf_demo3["hello"]}"
echo "${buf_demo3["heihei"]}"
echo "${buf_demo3["flower"]}"
echo "${buf_demo3["water"]}"

        在关联数组加一个感叹号 ! 可以获取数组的所有键

#!/bin/bashdeclare -A buf_demo=(["abc"]="123" ["def"]="456" ["hgk"]="789")echo "${!buf_demo[@]}"
echo "${!buf_demo[*]}"

2、shell输入获取

        read 命令是 Bash Shell 的内置命令,专门用来从标准输入中读取数据并赋值给变量。如果没有进行重定向,默认就是从键盘中读取用户输入的数据;如果进行了重定向,那么可以从文件中读取数据。

        read 命令的语法格式如下:

read [options] [variables]

        read命令的常用选项

#读取输入一个值
read val1#其中please input data为注释内容
read -p "please input data:" val1 val2 val3#从文本输入
read val<1.txt 

3、shell注释

        以#开头的行,就是shell的注释行,即当前行被注释掉了。同样采取以#为注释的还有python

#!/bin/bashecho hello world
#####################注释#####################
#--------------------------------------------
# Shell注释
# author:牛马大师兄
# date:2025/03/10 19:17#--------------------------------------------#

        多行注释

#!/bin/bashecho hello world
#网上的教程较为常见的shell多行注释方法如下
:<<EOF
注释内容...
注释内容...
注释内容...
EOF#但经过实际的编程验证发现
#直接采用如下方法多行注释一样可行
<<COMMENT
内容1
内容2
...
内容n
COMMENT: <<'COMMENT'
这是注释的部分。
可以有多行内容。
COMMENT:<<!
内容1
内容2
...
内容n
!

4、shell命令

(1)、echo

        echo命令直接用于输出显示内容到终端或文件

        常用的输出格式为:echo str

#!/bin/bash#显示普通字符串
echo "Welcom to Shell World!"    #字符串可选择是否加上引号
echo  Welcom to Shell World!#显示转义字符
echo "\"hello world!\""
echo  \"hello world!\"#显示变量
value=100
echo $value#显示换行
echo -e "hello world!\n"
echo "hello world!"#显示内容到文件中,临时重定向echo显示
echo "Byebye!">demo.txt#显示命令执行结果
echo `date`    #显示当前日期时间

(2)、printf

        在shell脚本中的printf使用方式和C语言中的printf函数类似,实现的功能也是一样的。可以说shell的printf是对C语言printf的模仿和复现。

        shell中的printf 是由 POSIX 标准所定义的,故而使用 printf 的脚本比使用 echo 移植性好。

#使用方式
printf  format-string  [arguments...]

参数说明:
format-string: 一个格式字符串,它包含普通文本和格式说明符。
arguments: 用于填充格式说明符的参数列表。


#!/bin/bash#显示输出hello world!printf "Hello world!\n"echo -e "Hello world!\n"printf "Hello %s,today is %d %d %d %.2f\n" Tony 2025 3 10 20.58printf "dec:%d hex:%X oct:%o\n" 10 10 10       

(3)、test

        test命令用于判断两个条件是否成立,成立则输出为真,不成立输出非真。test测试判断的三种对象:字符串整数文件属性

①、数值测试

a -eq b: equal测试两个整数是否相等
a -ne b: not equal 测试两个是否不相等
a -gt b: greater 测试a是否大于b
a -ge b: greater or equal 测试a是否大于等于b
a -lt b: little 测试a是否小于b
a -le b: little or equal 测试a是否小于等于b

        代码中的 [] 执行基本的算数运算

#!/bin/bashval1=100
val2=6if test $[val1] -eq $[val2]
thenprintf "val1=val2"
elseecho "val1!=val2"
fi

②、字符串测试

=         测试两个字符串内容是否完全一样
!=          测试两个字符串内容是否不一样
-Z(zero)    测试字符串是否为空,为空,返回true
-n(null)    测试字符串是否不为空,不为空,返回true

        在测试字符串变量时,需要防止字符串为空的技巧:

        引用变量后加一个额外的字符:test ${A}x = ${B}x

#!/bin/bashstr1="hello world!"
str2="byebye!"if test $[str1] = $[str2]
thenecho "str1 = str2"
elseecho "str1 != str2"
fi

③、文件测试

-d         name 测试name是否是一个目录(dir) //  if  test -d  1.txt;then
-f         name 测试name是否是一个普通文件(file)
-L         name 测试name是否为符号链接文件(Link)
-r         name 测试name文件是否存在并可读(read)
-w         name 测试name文件是否存在并可写(write)
-x         name 测试name文件是否存在并可执行(excute)
-s         name 测试name文件是否存在并且长度不为0(size)
f1 -nt f2         测试f1 是否比f2更新(newer than)
f1 -ot f2         测试f1 是否比f2更旧(older than)

#!/bin/bash#单个文件检测
if test -e 1.txt
thenecho '1.txt文件已存在!'
elseecho '1.txt文件不存在!'
fi#多个文件检测
if tets -e 1.txt -o -e 2.txt
thenecho '1.txt或2.txt文件已存在!'
elseecho '1.txt和2.txt文件均不存在!'
fi

        组合了两个或两个以上的表达式称为复合表达式,你可以用test([])内置的的操作符,也可以用条件操作符(&& || !)来实现。

test命令可以用[]来简写       

test expression [ expression ]

http://www.dtcms.com/wzjs/470207.html

相关文章:

  • 企业邮箱域名是什么意思做搜索引擎优化的企业
  • 凡科邮箱手机登录快抖霸屏乐云seo
  • 怎么注销自己名下的公司线上seo关键词优化软件工具
  • 武汉 网站 合作伙伴网站友链
  • 关于推进网站集约化建设的讲话seo上海公司
  • 企业网站推广解决方案seo排名资源
  • 网站推广品牌高端网站优化公司
  • 免费搭建微信网站设计太原seo团队
  • 吉林省软环境建设网站it培训四个月骗局
  • 桂林市区有什么好玩的地方景点深圳网络seo推广
  • 深圳app开发网站建设新站seo竞价
  • 揭阳网站建设价格深圳seo优化电话
  • 内江市网站建设网站优化种类
  • 网站优化推广产品seo优化
  • 泉州建设网站开发网络推广网站排行榜
  • 公司网站如何做免费友链互换
  • 做网站哪里需要用钱网络营销运营策划
  • wordpress页面留言板属于seo网站优化
  • 企业自助建站软件西安网站建设维护
  • 东莞一站式网站建设生成关键词的软件
  • 如何找回网站备案密码哪里有专业的培训机构
  • 做淘宝详情页好的网站免费推广的平台
  • 做设计比较好的网站推荐河南制作网站
  • 网站建设心得8000字seo技术培训学校
  • wordpress右侧悬浮插件seo排名优化方法
  • 北京做网站的网络公司网络营销首先要
  • 吉林整站优化夫唯老师seo
  • 胶州网站建设哪家好自动外链工具
  • 计算机网络动态网站建设seo关键词排名优化费用
  • 怎么知道网站是什么语言做的怎么做好seo推广