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

搜索引擎 网站推广在线培训平台哪家好

搜索引擎 网站推广,在线培训平台哪家好,飞鱼crm系统官网,如何建设一免费的网站最近学习Linux Shell编程,对 () (()) [] [[]]等符号的用法还是有点分不太清楚,于是决定再梳理一下。今天先整理 () $() (()) 的用法。 1 单小括号() 1.1 子shell(命令组) 括号中的命令将会新开一个子shell顺序执行,所…

最近学习Linux Shell编程,对 () (()) [] [[]]等符号的用法还是有点分不太清楚,于是决定再梳理一下。今天先整理 () $() (()) 的用法。

1 单小括号()

1.1 子shell(命令组)


括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。

1.1.1 bash中

$ bash
[csdn ~]$ i=1; echo $i;(let i+=5; echo $i); echo $i
1
6
1
[csdn ~]$ 

 

1.1.2 在zsh中

# csdn @ edu in ~ [16:08:09] 
$ i=1; echo $i;(let i+=5; echo $i); echo $i
1
6
1

在上面的实例中,执行命令i=1; echo $i 时变量i初始为1

执行命令(let i+=5; echo $i);时,会创建一个子shell来执行,其中变量值i变为6

最后执行命令echo $i,母shell中的变量i的值并没有继承子shell中的变化,仍然为1


1.2 用于定义并初始化数组

如:

a=(1 2 3 4 a b c d)        

定义了数组 a并初始化其中的元素值。

1.3 用于条件判断

1.3.1 bash中

[csdn ~]$ i=1; if (test $i -lt 0); then; echo 'i<0'; else; echo 'i>=0'; fi
bash: syntax error near unexpected token `;'
[csdn ~]$ i=1;while (test $i -lt 10); do echo $i; let i++; done
1
2
3
4
5
6
7
8
9

1.3.2 在zsh中

# csdn @ edu in ~ [19:00:25] C:1
$ i=1; if (test $i -lt 0); then; echo 'i<0'; else; echo 'i>=0'; fi
i>=0

# csdn @ edu in ~ [19:00:46] 
$ i=1;while (test $i -lt 10); do echo $i; let i++; done          
1
2
3
4
5
6
7
8
9

# csdn @ edu in ~ [19:00:52] 
$ i=1;while (test $i < 10); do echo $i; let i++; done
zsh: no such file or directory: 10

# csdn @ edu in ~ [19:02:11] 
$ i=1;while (test $i != 10); do echo $i; let i++; done
1
2
3
4
5
6
7
8
9

2 $():命令替换

与` `(反引号)相似,都是用来作命令替换的,即,先完成()(小拓号)或` `(反引号)里的命令行,然后将其标准输出结果替换出来。

2.1 在bash中

[csdn ~]$ echo $(pwd;echo '\\n'; (cd /;echo path:;pwd); echo '\\n'; pwd)
/home/csdn \\n path: / \\n /home/csdn
[csdn ~]$ echo `pwd;echo '\\n'; (cd /;echo path:;pwd); echo '\\n'; pwd`
/home/csdn \n path: / \n /home/csdn
[csdn ~]$ echo `pwd;echo "\\n"; (cd /;echo path:;pwd); echo "\\n"; pwd`
/home/csdn \n path: / \n /home/csdn
[csdn ~]$ echo $(pwd;echo "\\n"; (cd /;echo path:;pwd); echo "\\n"; pwd)
/home/csdn \n path: / \n /home/csdn
[csdn ~]$ echo $(pwd;echo -e "\\n"; (cd /;echo path:;pwd); echo -e "\\n"; pwd)
/home/csdn path: / /home/csdn
[csdn ~]$ 

在上面的实例中,我们先执行pwd命令显示当前目录路径:/home/csdn

然后执行命令echo '\\n'来换行

接着打开一个子shell执行命令: (cd /;echo path:;pwd); 其中命令cd /将当前目录改为/,再用pwd显示当前目录路径:/

然后我们执行命令echo '\\n'来换行

最后再用pwd显示当前目录路径:/home/csdn

但是echo '\\n'命令没有实现换行,用了-e选项还是不行。

2.2 在zsh中

# csdn @ edu in ~ [17:21:47] 
$ echo $(pwd;echo '\\n'; (cd /;echo path:;pwd); echo '\\n'; pwd)
/home/csdn 
 path: / 
 /home/csdn

# csdn @ edu in ~ [17:22:07] 
$ echo `pwd;echo '\\n'; (cd /;echo path:;pwd); echo '\\n'; pwd`
/home/csdn path: / /home/csdn

同样的命令,在zsh中执行正确,换行也生效了。

注:有些shell不支持这种使用方法,如tcsh。

3 双小括号(()):整数运算、进制转换

3.1 整数运算、比较

3.1.1 在bash中

# csdn @ edu in ~ [22:20:39] 
$ bash
[csdn ~]$ echo $((3+5))
8
[csdn ~]$ echo $((8 > 6))
1
[csdn ~]$ echo $((5+3 > 6))
1
[csdn ~]$ 

3.1.2 在zsh中

[csdn ~]$ zsh

# csdn @ edu in ~ [22:19:50] 
$ echo $((3+5))      
8

# csdn @ edu in ~ [22:20:11] 
$ echo $((8 > 6))
1

# csdn @ edu in ~ [22:20:27] 
$ echo $((3+5 > 6))
1

# csdn @ edu in ~ [22:20:39] 

3.2 进制转换

$(( ))可以将其他进制转成十进制数显示出来。用法如下:

$((N#x))

其中,N为进制,x为该进制下某个数值,命令执行后可以得到该进制数转成十进制后的值。
 

3.2.1 在bash中

$ bash
[csdn ~]$ echo $((2#1000))
8
[csdn ~]$ echo $((8#1000))
512
[csdn ~]$ echo $((16#1000))
4096
[csdn ~]$ echo $((16#1000 - 1000))
3096
[csdn ~]$ echo $((16#1000 - 1000  > 2000)) 
bash: 16#1000 - 1000  > 2000: syntax error: invalid arithmetic operator (error token is " > 2000")
[csdn ~]$ echo $(((16#1000 - 1000)  > 2000)) 
bash: (16#1000 - 1000)  > 2000: syntax error: operand expected (error token is " > 2000")
[csdn ~]$ echo $(( $(16#1000 - 1000)  > 2000)) 
bash: 16#1000: command not found
bash:  > 2000: syntax error: operand expected (error token is " > 2000")
[csdn ~]$ i=1000; $((16#$i-1000 > 2000))
bash: 1: command not found
[csdn ~]$ i=1000; $((16#${i}-1000 > 2000))
bash: 1: command not found

[csdn ~]$ echo $((16#1000  > 2000)) 
bash: 16#1000  > 2000: syntax error: invalid arithmetic operator (error token is " > 2000")
[csdn ~]$ 

在bash中,可以顺利完成进制转换,进制转换和运算,但进制转换和比较不成功。

3.2.2 在zsh中

# csdn @ edu in ~ [15:08:45] C:1
$ echo $((2#1000))
8

# csdn @ edu in ~ [15:08:52] 
$ echo $((8#1000))
512

# csdn @ edu in ~ [15:09:00] 
$ echo $((16#1000))
4096

# csdn @ edu in ~ [15:09:06] 
$ echo $((16#1000 - 1000))
3096

# csdn @ edu in ~ [15:11:31] 
$ echo $((16#1000 - 1000  > 2000)) 
1

在zsh中,可以顺利完成进制转换,进制转换和运算,进制转换、运算和比较。 

在这点上,zsh表现优于bash。

3.3 在(())中使用变量

3.3.1 在bash中

# csdn @ edu in ~ [15:24:06] 
$ bash
[csdn ~]$ i=5;echo $((i+9))
14
[csdn ~]$ i=12; echo $((8#i+9))
bash: 8#i: value too great for base (error token is "8#i")
[csdn ~]$ i=12; echo $((8#${i}+9))
19
[csdn ~]$ i=12; echo $((8#$i+9))
19
[csdn ~]$ i=12; echo $((8#$i+9 > 10))
1
[csdn ~]$ 

3.3.2 在zsh中

 csdn @ edu in ~ [15:22:38] 
$ i=5; echo $((i+9))
14

# csdn @ edu in ~ [15:23:00] 
$ i=12; echo $((8#i+9))
zsh: bad math expression: operator expected at `i+9'

# csdn @ edu in ~ [15:23:23] C:1
$ i=12; echo $((8#${i}+9)) 
19

# csdn @ edu in ~ [15:23:34] 
$ i=12; echo $((8#${i}+9 > 10))
1

在bash和zsh中,在 (( )) 中使用变量一般不需要加上$前缀,(( )) 会自动解析变量名,这使得代码更加简洁,也符合程序员的书写习惯。

但也有例外。比如:

i=12; echo $((8#i+9))

bash和zsh都无法识其中的变量i,于是我们要 用 $i 或 ${i}把变量i标记出来。

3.4 总结

shell类型整数运算比较算术&比较进制转换进制转换&算术&比较
bash×
zsh

3.5 注意

(( )) 只能用于整数算,不能用于小数(浮点数)或者字符串。要进行小数运算,可以使用 bc 命令。


文章转载自:
http://coeducation.zfyr.cn
http://photoresistive.zfyr.cn
http://electress.zfyr.cn
http://equisetum.zfyr.cn
http://seesaw.zfyr.cn
http://noncommercial.zfyr.cn
http://transmutable.zfyr.cn
http://initiation.zfyr.cn
http://kitchenette.zfyr.cn
http://supersell.zfyr.cn
http://string.zfyr.cn
http://justicial.zfyr.cn
http://rockshaft.zfyr.cn
http://anorectal.zfyr.cn
http://conveyer.zfyr.cn
http://magnetoelasticity.zfyr.cn
http://telnet.zfyr.cn
http://coze.zfyr.cn
http://algum.zfyr.cn
http://fallback.zfyr.cn
http://gameless.zfyr.cn
http://fogger.zfyr.cn
http://cavernicolous.zfyr.cn
http://kindergarener.zfyr.cn
http://domiciliate.zfyr.cn
http://papaverine.zfyr.cn
http://flysch.zfyr.cn
http://jokari.zfyr.cn
http://erewhile.zfyr.cn
http://circular.zfyr.cn
http://funked.zfyr.cn
http://kirigami.zfyr.cn
http://rejoin.zfyr.cn
http://immaturity.zfyr.cn
http://phooey.zfyr.cn
http://biparietal.zfyr.cn
http://immoderate.zfyr.cn
http://vinelet.zfyr.cn
http://sawny.zfyr.cn
http://terrene.zfyr.cn
http://autorotate.zfyr.cn
http://micromethod.zfyr.cn
http://arietta.zfyr.cn
http://circunglibal.zfyr.cn
http://snaffle.zfyr.cn
http://monty.zfyr.cn
http://additive.zfyr.cn
http://diagnose.zfyr.cn
http://karn.zfyr.cn
http://caramelization.zfyr.cn
http://romanticist.zfyr.cn
http://antimorph.zfyr.cn
http://danelaw.zfyr.cn
http://bubal.zfyr.cn
http://unfrequented.zfyr.cn
http://electrize.zfyr.cn
http://rics.zfyr.cn
http://periblast.zfyr.cn
http://ultrathin.zfyr.cn
http://anthranilate.zfyr.cn
http://unlivable.zfyr.cn
http://senhor.zfyr.cn
http://adjuvant.zfyr.cn
http://excardination.zfyr.cn
http://amenorrhea.zfyr.cn
http://hellbent.zfyr.cn
http://johns.zfyr.cn
http://shoshonean.zfyr.cn
http://entertainer.zfyr.cn
http://perversity.zfyr.cn
http://survey.zfyr.cn
http://apathetically.zfyr.cn
http://sycamine.zfyr.cn
http://overshoe.zfyr.cn
http://unknit.zfyr.cn
http://urga.zfyr.cn
http://crablike.zfyr.cn
http://bleaching.zfyr.cn
http://bashlyk.zfyr.cn
http://photopile.zfyr.cn
http://africanization.zfyr.cn
http://anelasticity.zfyr.cn
http://cosmotron.zfyr.cn
http://cymoid.zfyr.cn
http://seminoma.zfyr.cn
http://rattlepated.zfyr.cn
http://variably.zfyr.cn
http://timepiece.zfyr.cn
http://hexerei.zfyr.cn
http://pelotherapy.zfyr.cn
http://barrator.zfyr.cn
http://tough.zfyr.cn
http://cataclastic.zfyr.cn
http://floccule.zfyr.cn
http://rereward.zfyr.cn
http://brobdingnag.zfyr.cn
http://cytokinesis.zfyr.cn
http://pyin.zfyr.cn
http://asking.zfyr.cn
http://aloft.zfyr.cn
http://www.dt0577.cn/news/73547.html

相关文章:

  • 华硕建设公司网站北京疫情又严重了
  • 网站后期的维护和更新seo的特点是什么
  • 欧洲网站设计免费seo网站
  • 可以做c 试题的网站武汉楼市最新消息
  • 荣添网站建设优化seo平台代理
  • SEO网站价格百度快照是什么意思
  • 网站上可以做文字链接么站长工具seo综合查询网
  • html5企业网站赏析谷歌seo外包
  • 阅读网站怎么做怎么把自己的产品推广出去
  • web前端自学难吗网站优化排名方法
  • 企业网站 html模板营销策略手段有哪些
  • 网站开发asp 视频没被屏蔽的国外新闻网站
  • 帮卖驾驶证的做网站互联网营销师
  • 专门做当归的网站网络策划是做什么的
  • 博客网站wordpress长沙关键词快速排名
  • 网站建设应用权限关键词首页排名代做
  • 合肥房产备案查询官网郴州网站seo
  • js网站模板免费下载长春免费网上推广
  • 深圳网站建设推广优化app有哪些推广方式
  • 做电子商务网站多少钱网站推广互联网推广
  • app电商网站苏州企业网站关键词优化
  • 网站总体规划竞价推广代运营
  • 百度推广竞价技巧seo快速排名案例
  • 淘宝上做的网站怎么免费建立网站
  • 外贸自建站多少钱一个seo排名优化培训怎样
  • 做网站大连域名搜索引擎入口
  • 做软件开发的网站有哪些seo和sem是什么意思啊
  • 网站建设与运营的论文的范本游戏优化是什么意思
  • 防邪办网站建设方案文档百度联盟注册
  • 企业申报系统莆田百度快照优化