shell语法,shell语法基础?
01.变量
1、环境变量
echo $PATH
2、自定义变量
hello="hello_world"
echo $hello
3、存储 Linux 命令执行结果作为变量
(2 种方式,推荐使用第二中,第一种是 ~键上面的斜点比较难识别)
files=ls -al
path=(pwd)注意点定义变量=号两边不能有空格使用变量需要加 符号
02.基本运算
1、运算符
+:加
-:减
*:乘
/:除
%:取余
==:判断是否相等
!=:不等于
:大于
=:大于或等于
<:小于
<=:小于或等于
2、整数运算(expr)
expr 10 + 3 echo $[10 + 3] 将计算结果存储为变量2种方式 num=$(expr 10 + 3) num=`expr 10 + 3`
注意点
运算符前后必须用空格
*乘必须加反斜杠转义
3、整数运算($[])
num1=100num2=200sum_num=$[$num1+num2]
注意点
运算符前后可以不空格
*乘不需要加转义符
4、浮点运算
num=$(echo "scale=2;10/3" | bc)
scale:保留小数的位数
将 10/3 给 bc 计算器计算,保留两位小数
03.条件选择
if 后面接的是命令,其实是这个命令的退出状态码,正常退出,状态码 0,其他的就不是 0。这里意思是如果是 0 就执行 then,否则就不执行1、
if-thenif commandthen "执行成功"fi
2、
if-then-else
3、
if-then-elif-elseif判断基本语法,if开头,fi结尾
#/bin/bash NUM='4' if (( $NUM > 4 )) then echo "$NUM more then 4" elif (( $NUM == 4 )) then echo "$NUM 等于4" else echo "$NUM less then 4" fi
4、case 语句
case $num in1) echo "num=1"2) echo "num=2"3) echo "num=3"esac
04.循环for – in
for i in listdo commandsdone
2.C 语言风格
for (( i = 0;i <= 10;i++))do commandsdone
3.while 循环
while test commanddo echo "条件满足的时候执行这里的操作"done
num=8while (( $num < 10 ))do echo "条件满足的时候执行这里的操作" echo "$num小于10"done
4.until 循环
until test commanddo echo “条件不满足的时候执行”done
说明:
condition 为条件表达式,值为 false,则继续执行循环体内语句,否则跳出循环until 循环与 while 循环处理方式刚好相反控制循环break 跳出外层循环,同 pythoncontinue 终止当前循环,进入下一个循环,同 python
while (( 1>0 )) do echo –n “输入一个数字” read num if (( $num>10 )) then break else continue fidone
05.命令行参数处理
bash shell 可以根据参数位置来获取参数
通过 $1 到 $9 获取第 1 到第 9 个命令行参数
$0 为 shell 名,如果参数超过 9 个,就通过 ${10}来获取
06.获取用户输入(read)
单个输入,指定变量接收输入的值(choice)
echo -n "yes or no(y/n)"read choiceecho "you choice is : $choice"
单个输入,不指定变量接收输入的值,read 会将它接收到的任何数据放到特殊环境变量 REPLY 中
echo -n "yes or no(y/n)"readecho "you choice is : $REPLY"
多个输入
read -p "what is you name?" first secondecho first:$firstecho second:$second
上面的例子首先会输出 what is you name? 然后在本行等待用户输入,此处的 read -p 实现以上实例的 echo -n + read 不换行的效果,输入的参数用空格隔开,如果输入的值超出接收的变量个数,shell 会把剩下的值都赋值给最后一个变量。
07.超时设置
if read -t 5 -p "enter you name:"namethen echo "hello $name"else echo "time out"fi
注意点
变量名一般大写数值比较 (( 8 > 7 ))字符串比较 【【 str1 != str2 】】test 命令只能判断以下 3 类条件数值比较
字符串比较
文件比较5shell 脚本的流控制语句结束语句就是开始语句反过来写,如 if 结束语句 fi,case 结束语句 esac
数值比较
字符串比较
文件比较
8.福利领取
需要全套Linux相关shell语法大全的可以关注并私信我关键词“测试”免费领取
以上内容就是小编分享的关于shell语法大全.jpg”/>
网友提问:
shell语法,shell语法大全?
python能代替shell吗?
优质回答:
首先来说,Shell是Linux及Unix系统下内置的一款脚本语言,它是解释型的,所以编写和执行相对来说都是比较容易的。但是,Shell这款脚本语言真的很奇葩,为什么这样讲呢?因为它的语法和主流编程语言完全不一样,给人的感觉就是很不规范(语法不规范),所以学起来很难。
举个例子来说一下吧,Shell脚本对于空格都有奇葩的规定,当用 等号(=) 来赋值时,=左右两侧不能有空格;当用 = 来做比较时,等号两边必须有空格;中括号([])左右两侧必须要加空格。这种语法大家可能接受?
i=1if [ $a = $b ]
Shell语法之所以难,是难在一些奇怪的语法规定上,而且Shell没有合适的IDE来编写,写错的机率也较大。
Python远比Shell要强大,所以我们说Python是可以替代Shell的(但不能完全替代,Shell还是有它的特定场景),原因主要有以下几点:
1、主流的Linux发行版本都内置安装了Python,这样一来我们可以直接使用避免了下载安装;
2、Python也是解释型脚本语言,语法语义性高,代码容易阅读看懂,上手容易;
3、Python有很多库的支持,功能上比Shell丰富。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
其他网友观点
大家好!我是黑客之家小编,黑客之家头条号
分享黑客技术,GO、Python、Kotlin、Android、Java编程知识,科技资讯等
喜欢的朋友可以关注我的头条号!
python是一门简单易学的编程语言,功能强大,当然可以用来替代shell。
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux或者类UNIX 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
python内置的os模块提供了非常丰富的方法用来与操作系统进行交互,可以深入学习python的os模块。python诞生之初就是为了简化运维工作量用的,最后发展成通用语言。用python来替代shell是没有问题的,python简单易学,语法简单,学起来速度更快,还可以用python来做自动化运维。
喜欢的朋友可以点赞、关注、转发、评论!同时欢迎大家在评论中补充不足的地方!
其他网友观点
纠结了很久,还是想发表一下看法.不会的!专注的领域不同,双方不属于对立面
shell是什么
引用百度百科的
在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
解读:shell是用来给我们程序员提供操作内核的命令解析器
python呢
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
解读:最初是想用来编写自动化脚本的,并不是想取代他,现在python更多的是应用于项目的开发,与他对立的应该是java
这样我们可以看出来,这两者不是对立的,而是互助的.
个人理解
shell的是程序员与计算机的桥梁.
python大众用户与计算机的桥梁.
其他网友观点
不能,不会,也没必要——这也不是Python的目标。
首先不点名批评某些半桶水误导别人的答复。
然后说事,shell是什么?shell不具体指某一个软件包,而是指操作系统的人机交互界面,这是一种基于地位的描述。shell不止一种,*nix下 bash 可能是最常见的,此外还有一些其它的,比如csh ksh啥的(我也不会,所以不了解),win下面的cmd也是一种。
而Python是一种开发语言,虽然有个交互模式,但仍然是给开发工作提供的,而不是一个shell,功能上讲不能承担起shell的工作。
而对于一个人机交互接口,最重要的就是它的使用便利性。谁更好用,不评价,反正轮不到Python。
至于脚本,shell的写起来最简单。用户选择工具的时候,性能满足要求的情况下,往往优先考虑的是实现效率。
其他网友观点
可以代替但不是最优
Shell本质上还是靠调用各种命令行工具来干活,你可以想象成带有控制逻辑的批处理。
Python作为一种比较强大的通用语言,Shell能干的事情确实它都能干。
但是相信我,适合用Shell解决的事情,用Python干并不会更简单。不然以Python在Linux 的普及程度,shell早被取代了。
shell这么大年纪还越过越精神,印证了那句尺有所短寸有所长。shell的管道是unix设计哲学的精华。能用grep, awk, sed和简单数组,循环搞定的,就用不着perl, python,翻过来如果需要map等复杂结构,就可以用严肃脚本了。
Shell本质上还是靠调用各种命令行工具来干活,你可以想象成带有控制逻辑的批处理。
建议使用方案