德克云技术联盟

会员中心
发新帖
打印 上一主题 下一主题

Linux Shell语法总结
发布人: 李臻宇 发布时间:2014-07-25 浏览:3318



判断结构
if 命令 or : or 变量
then
   命令
   命令;命令
fi
--------------------------------------------------
if 命令 or : or 变量
then
   命令
   命令;命令
elif 命令 or : or 变量
then
   命令
   命令;命令
fi
--------------------------------------------------
case 字符串 or 变量 in
字符串 or 变量 or 正则表达式| 字符串 or变量 or 正则表达式)命令;;      // |逻辑或
字符串 or 变量 or 正则表达式)命令;命令;;
esac
--------------------------------------------------
循环结构
for 变量 in 传进来的参数集
do
   命令
   命令;命令
done
--------------------------------------------------
for 变量 or((i=1;i<=50;i++))
do
   命令
   命令;命令
done
--------------------------------------------------
while 命令              //返回为真的话,就执行循环体。
do
   命令
   命令;命令
done
--------------------------------------------------
until 命令              //返回为假时,才执行循环体。
do
   命令
   命令;命令
done
--------------------------------------------------
例:
for((i=1;i<=50;i++))
do
   mkdir -p /userdata/$i
   chmod 754 /userdata/$i
done
--------------------------------------------------
break n  命令不执行当前循环体内break下面的语句从当前循环退出.
continue n  命令是程序在本循体内忽略下面的语句,从循环头开始执行.
命令组合符:圆括号()和花括号{}
shell中有两种方法将命令组合在一起:
一、圆括号使shell创建一个 子shell来读取并执行括起来的名命令.左括号和右括号不论出现在命令行中的什么位置, shell 都会认为它们具有特殊的组合意义的.只有用双引号将它们括起来引用,才表示圆括号或花括号的原义.
例如:
echo a(b)
将出现语法上的错误,要想输出a(b)字符串 只能括起来:
echo "a(b)" 或 echoa"("b")"
这样才能被 shell 正确解释.
利用组合命令有什么作用呢?
1、用圆括号组合命令
圆括号的组合命令可以创建子进程运行组合程序,建立子进程的功能是很有用的,因为子shell 在组合命令中的种种操作都不会影响到当前 shell 的各变量的值.
例如:
子进程在执行组合命令时改变了工作目录,并在新的工作目录下执行一系例命令,执行完后它可以不必返回原工作目录,因为子进程工作目录的改变不会影响到当前工作目录.
创建子进程后将当前的环境也同样传给 子shell,当前shell 中用 export 输出到环境中的各变量在子 shell 中同样有效.
二、花括号也可以将命令组合在一起.左右花括号只有作为一条命令的第一个字出现时,shell 才它们含有特殊含义.与圆括号不同的是花括号并不创建 子shell,只是由当前的 shell 来读取并执行括起来的命令.有时用户希望使用一组命令的顺序输出作为另一组命令的输入,此时用花括号是很方便的.不论是用圆括号不是花括号,退出状态都是等于最后一条括起来的命令的退出状态.
可以在当前 shell 中执行的命令:
用户在使用 shell 时,一定要了解哪些命令是可以在当前shell 中执行的,哪些不可以在当前 shell 中执行的,这很有用。
以下命令是在调用时不会生成新的 子shell:
for; while; until;if; case; test;
break; continue;return;
echo; eval; exec;set; export;
read; readonly;shift;
times; trap; umask;
cd; wait; :; {};exit;


分类浏览
关于我们
联系我们
技术联盟
云服务
云技术
云合作
帮助中心
发帖规则
QQ客服
内部通道
企业邮箱
企业论坛
版本选择
手机版
电脑版
用手机扫描下方二维码查看手机版页面

版权所有 西安云联电子科技有限公司
Copyright @ 2011-2022 | decoclouds.com All Rig
陕ICP备13002202号-1

快速回复 返回顶部 返回列表