设为首页 收藏本站
查看: 1200|回复: 0

[经验分享] Linux

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-25 14:37:17 | 显示全部楼层 |阅读模式
使用双引号的字符
  双引号是Shell的重要组成部分

$ echo Hello        World
Hello World
$ echo "Hello     World"
Hello     World
  如何显示:  Hello     “World”

以下命令可以吗?$ echo “Hello        “World””

正确方法:echo “Hello    \”World\””
条件测试
  测试命令

test expression 或 [ expression ]

test命令支持的条件测试

字符串比较

算术比较

与文件有关的条件测试

逻辑操作

str1 = "abc"
if [ $str = "abc" ]; then
echo "The strings are equal"
else
echo "The strings are not equal“
fi


mkdir temp
if [ -d temp ]; then
echo "temp is a directory"
fi

条件语句

形式
if [ expression ]
then
statements
elif [ expression ]
then
statements
elif …
else
statements
fi
紧凑形式
; (同一行上多个命令的分隔符)

  case语句

当执行append时,有多少种可能的情况出现?

#!/bin/sh
#脚本名: append
case $#
1) cat >> $1 ;;
2) cat >> $2 < $1 ;;
*) echo 'usage: $0 [fromFile] toFile' ;;
esac


No parameter or more than 2
Only 1 parameter & the file exist
Only 1 parameter & the file not exist
Both file exist
1st exist; 2nd not exist
2nd exist; 1st not exist
Both files not exist

select语句

形式
select item in itemlist
do
statements
done
作用
生成菜单列表


举例:一个简单的菜单选择程序
#!/bin/sh
clear
select item in Continue Finish
do
case “$item” in
Continue) ;;
Finish) break ;;
*) echo “Wrong choice! Please select again!” ;;
esac
done
Question: 用while语句模拟?

命令组合语句

分号串联
command1; command2; …
条件组合
AND命令表
格式:statement1 && statement2 && statement3 && …
OR命令表
格式:statement1 || statement2 || statement3 || …

函数调用

形式
func()
{
statements
}
局部变量
local关键字
函数的调用
func para1 para2 …
返回值
return


yesno()
{
msg=“$1”
def=“$2”   
while true; do
echo” ”
echo “$msg”
read answer
if [ “$answer” ]; then
case “$answer” in
y|Y|yes|YES)
return 0
;;
n|N|no|NO)
return 1
;;
*)
echo “ ”
echo “ERROR: Invalid response, expected \”yes\” or \”no\”.”
continue
;;
esac
else
return $def
fi
done
}


调用函数yesno
if yesno “Continue installation? [n]” 1 ; then
:
else
exit 1
fi


杂项命令
  break: 从for/while/until循环退出

continue: 跳到下一个循环继续执行

exit n: 以退出码”n”退出脚本运行

return: 函数返回

export: 将变量导出到shell,使之成为shell环境变量

set: 为shell设置参数变量

unset: 从环境中删除变量或函数

trap: 指定在收到操作系统信号后执行的动作

“:”(冒号命令): 空命令

“.”(句点命令)或source: 在当前shell中执行命令
Shell应用举例
  编写一个脚本,实现对Linux系统中的用户管理,具体功能要求如下

该脚本添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stuxx(其中xx从01到30)

关键命令

groupadd

useradd

mkdir

chown

chgrp

#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
username=stu0${i}
else
username=stu${i}
fi
useradd $username
mkdir /home/$username
chown -r $username /home/$username
chgrp -r class1 /home/$username
i=$(($i+1))
done

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-130671-1-1.html 上篇帖子: 执行sh脚本错误:/bin/sh^M: bad interpreter: 没有那个文件或目录 下篇帖子: 《Linux程序设计第四版》读书笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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