#!/bin/bash

 #shell使用的熟练成都反映用户对Unix/Linux使用的熟练程度
#shell 有两种执行命令的方式:交互式和批处理
#常见的shell脚本解释器有bash,sh,csh等等
#chmod +x ./hello.sh #使脚本具有执行权限
#./hello.sh #执行脚本 #交互输入
echo "whats your name?"
read person
echo "hello,$person" #变量 定义不加$,引用要加$
myname="shiqing"
echo ${myname} #特殊变量
echo "filename:$0"
echo "first parameter:$1"
echo "second parameter:$2"
echo "all parameter:$@"
echo "all parameter:$*"
echo "total number of parameters:$#" #命令替换 ~下 `command`
USERS=`who | wc -l`
echo "Logged in user are $USERS“   #返回这个脚本文件放置的目录   cd `dirname $0`
  echo `pwd` #表达式,原生bash不支持简单的数学运算,expr 是一种表达式计算工具
val=`expr + `
echo "value is $val"
a=
b=
val=`expr $a \* $b`
echo "a * b: $val" #字符串
str="abcd"
echo ${#str}
echo ${str::} #数组
arr=(a,b,c,d)
echo "first :${arr[0]}"
echo "all:${arr[*]}" #获取所有元素
echo "length:${#arr[*]}" #获取数组长度 #if...elif...else...,条件表达式要放在方括号之间,并且要有空格
a=
b= if [ $a == $b ]
then
echo "a is equal to b"
elif [ $a -gt $b ]
then
echo "a is g reater than b"
else
echo "a is less than b"
fi #case ...easc...
echo 'Input a number between 1 to 4'
echo 'Your number is:\c'
read aNum
case $aNum in
) echo 'You select 1'
;;
) echo 'You select 2'
;;
) echo 'You select 3'
;;
) echo 'You select 4'
;;
*) echo 'You do not select a number between 1 to 4'
;;
esac #for...in...
for loop in
do
echo "The value is: $loop"
done #while...do...done...
echo 'type <CTRL-D> to terminate'
i=
while read FILM
do
echo "Yeah! great film the $FILM"
i=`expr $i + `
b=
if [ $i-gt$b ] #expression 和方括号([ ])之间必须有空格,否则会有语法错误。
then
break
fi
done #until...do...done
a=
until [ ! $a -lt ]
do
echo $a
a=`expr $a + `
val=`expr $a + $b`
done #函数
funWithParam(){
echo "The value of the first parameter is $1 !"
echo "The value of the second parameter is $2 !"
echo "The value of the tenth parameter is $10 !"
echo "The value of the tenth parameter is ${10} !"
echo "The value of the eleventh parameter is ${11} !"
echo "The amount of the parameters is $# !" # 参数个数
echo "The string of the parameters is $* !" # 传递给函数的所有参数
}
funWithParam funWithReturn(){
echo "The function is to get the sum of two numbers..."
echo -n "Input first number: "
read aNum
echo -n "Input another number: "
read anotherNum
echo "The two numbers are $aNum and $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
ret=$? #函数返回值在执行函数后通过$?获得
echo "The sum of two numbers is $ret !" #输入输出重定向 >,>>(追加), <
who>users
wc -l<users

linux bash 入门的更多相关文章

  1. Linux系统入门-Bash初识

    目录 Linux系统入门-Bash初识 Bash Shell介绍 Bash Shell的作用 Bash的两种使用方式 命令提示符 shell的基础语法 shell的基本特性 命令补全 linux快捷键 ...

  2. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  3. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  4. 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件

    除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...

  5. 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

    Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

  6. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  7. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  8. Linux pwn入门教程——CTF比赛

    Linux pwn入门教程(1)——栈溢出基础 from:https://zhuanlan.zhihu.com/p/38985585   0x00 函数的进入与返回 要想理解栈溢出,首先必须理解在汇编 ...

  9. Linux基础入门---学习心得

    之前一直以为Linux和Windows差不多,但是学习了Linux基础入门之后才发现两种操作系统之间差距非常大. Linux只是在硬件之上的内核和系统调用,就连我们在Windows里习以为常的图形界面 ...

随机推荐

  1. 深入Spring Boot:ClassLoader的继承关系和影响

    前言 对spring boot本身启动原理的分析, Spring boot里的ClassLoader继承关系 可以运行下面提供的demo,分别在不同的场景下运行,可以知道不同场景下的Spring bo ...

  2. Yum只更新安全补丁的方法

    当大家想只给RHEL系统更新安全补丁的时候,往往会把其他一些无用的组件给更新下来,现在就给大家说下怎么只更新安全补丁而又不更新其他组件. 1.安装yum插件即可:   yum install yum- ...

  3. 解决PKIX path building failed

    起因 上周在生产环境部署时,把安全证书加到k8s-ingress中时发现报该错误 解决 找网上解决方案,因为这种问题相对比较少见,也没百度,直接谷歌,找到解决方案如下:https://stackove ...

  4. IaaS, PaaS和SaaS

    原文链接:http://www.leiphone.com/news/201406/iaas-paas-and-saas.html 云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, Ia ...

  5. v4l2驱动文档之——streaming IO【转】

    转自:http://blog.csdn.net/zoe6553/article/details/17715441 v4l2驱动编写篇第六B--流输入输出 在本系列文章的上一期中,我们讨论了如何通过re ...

  6. linux的文件权限分析

    windows中,文件的类型是根据后缀名来确定的,但是linux则是根据标志来确定的,查看一个文件的权限的命令是 ls -l #查看文件的权限 文件的权限结构如图: ①第一部分:10个字符(第1位表示 ...

  7. 利用WM_COPYDATA进行进程间通信

    发信消息 void CControlDlg::OnBnClickedButtonSend() { // TODO: 在此添加控件通知处理程序代码 CString strWindowTitle = _T ...

  8. sed 使用总结

    1. 更新区间值 文件的内容如下: <ClientVersion> <Item> <ProductUuid>5fa7d5af-6f6a-4d1f-b773-ac42 ...

  9. 如何将离线的PIP安装包快速安装好

    先将已安装的组件通过pip freeze require.txt导出. 将require里需要的安装包放到一个独立目录下. 然后运行命令: pip install --no-index --find- ...

  10. [BZOJ4760][Usaco2017 Jan]Hoof, Paper, Scissors dp

    4760: [Usaco2017 Jan]Hoof, Paper, Scissors Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 136  Solv ...