|
输出
echo
仅用于字符串的输出,没有使用printf作为输出的移植性好,建议使用printf
printf
printf 不会像 echo 自动添加换行符,我们可以手动添加 n
无大括号,直接以空格分隔
-
格式:printf format-string [arguments...] 其中(format-string: 格式控制字符串、arguments: 参数列表)
-
案例:printf "%-10s %-8s %-4.2fn" 郭靖 男 66.1234
-
%s %c %d %f 都是格式替代符
-
d:Decimal 十进制整数 对应位置参数必须是十进制整数,否则报错!
-
s:String 字符串 对应位置参数必须是字符串或者字符型 否则报错
-
c:Char 字符 对应位置参数必须是字符串或者字符型 否则报错
-
f:Float 浮点 对应位置参数必须是数字型 否则报错
-
%-10s : 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
-
%-4.2f :指格式化为小数,宽度为4个字符,其中.2指保留2位小数。
-
转义符:
-
a :警告字符,通常为ASCII的BEL字符
-
b :后退
-
c :抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
-
f :换页(formfeed)
-
n :换行
-
r :回车(Carriage return)
-
t :水平制表符
-
v :垂直制表符
-
:一个字面上的反斜杠字符
-
ddd :表示1到3位数八进制值的字符。仅在格式字符串中有效
-
ddd :表示1到3位的八进制值字符
流程控制
和Java、PHP等语言不一样,sh的流程控制不可为空,即if或者else的大括号中无任何语句
if else
-
ifif condition then command1 command2 ... commandN fi
-
if elseif condition then command1 command2 ... commandN else command fi
-
if else-if elseif condition1 then command1 elif condition2 then command2 else commandN fi
for
for var in item1 item2 ... itemN do command1 command2 ... commandN done
while
-
while conditionwhile condition do command done
-
while 无限循环while : do command done
until
until 循环执行一系列命令直至条件为 true 时停止。
until 循环与 while 循环在处理方式上刚好相反。
until condition do command done
case
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
case需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break,其中“;;”不是跳出循环,是不在去匹配下面的模式
case语句格式如下:
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
跳出循环
-
break :跳出总循环
-
continue:跳出当前循环,继续下一次循环
定义函数

(编辑:桂林站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|