1:Shell Script中if语句的条件部分要以分号来分隔

2:要注意条件测试部分中的空格。在方括号的两侧都有空格

3:echo "Hi, ${a}s" 单引号中的变量不会进行变量替换操作。

4:[ -f "$file" ] 判断$file是否是一个文件

5:[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于

6:[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性

7:[ -n "$a" ] 判断变量$a是否有值,测试空串用-z

8:[ "$a" = "$b" ] 判断$a和$b的取值是否相等

9:[ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立

说明:$#表示包括$0在内的命令行参数的个数。在Shell中,脚本名称本身是$0,剩下的依次是$0、$1、$2…、${10}、${11},等等。$*表示整个参数列表,不包括$0,也就是说不包括文件名的参数列表。

注意:一定要切记filelist=后边的那个引号不是单引号,而是tab键上边的那个键,或者说是1左边的那个键

filelist=`ls /home/work`
for file in $filelist
do 
echo $file
done
 

实例:shell遍历目录下所有文件 displayfile.sh

#!/bin/sh
cd $1
echo "The Catelog:$1"
files=`ls -a`
m=0
n=0
for f in $files
do
 if [ -d "$f" ]; then
  m=`expr $m + 1`
 else
  n=`expr $n + 1`
  echo "$f"
 fi
done
echo -e "The Catelog Number is $m"
echo -e "The File Number is $n"
运行:./displayfile.sh   /home/work

实例:Linux shell脚本判断当前是否为root用户

whoami(显示当前用户的用户名)

if [ `whoami` = "root" ];then
 echo "root用户!"
else
 echo "非root用户!"
fi

id -u (显示当前用户的uid)

if [ `id -u` -eq 0 ];then
 echo "root用户!"
else
 echo "非root用户!"
fi

Linux Shell 编程学习笔记的更多相关文章

  1. Linux Shell编程学习笔记——目录(附笔记资源下载)

    LinuxShell编程学习笔记目录附笔记资源下载 目录(?)[-] 写在前面 第一部分 Shell基础编程 第二部分 Linux Shell高级编程技巧 资源下载 写在前面 最近花了些时间学习She ...

  2. linux shell编程学习笔记(二) --- grep命令

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...

  3. linux shell编程学习笔记(一)---通配符,元字符

    linux通配符: 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的“参数”里(它不用在 命令名称里, 也不 ...

  4. Linux Shell编程学习笔记

    打算在学习过程中将每个写过的程序一个个的往上贴; 2015-07-03 1. 鸟叔第三版13.2.1节“利用日期进行文件的创建” 源代码 #!/bin/bashPATH=/bin:/sbin:/usr ...

  5. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  6. shell编程学习笔记(一):编写我的第一段代码

    目前在学习Shell编程,我会把我的学习笔记记录在这里.大神可以直接略过~ 嗯,第一段代码,肯定是要输出Hello World了~ 以下蓝色字体的内容为linux命令,红色字体的内容为输出的内容: # ...

  7. shell编程学习笔记【原创】

    本文为本人学习笔记,如有转载请注明出处,谢谢 一.Bourne Shell 有如下四种变量: 用户自定义变量 位置变量,即命令行参数 预定义变量 环境变量 二.位置变量 $ 与键入的命令行一样,包含脚 ...

  8. Linux shell 重定向学习笔记

    在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读 ...

  9. shell编程学习笔记(十):Shell中的for循环

    shell编程中可以实现for循环遍历 先来写一个最简单的吧,循环输出从1到10,脚本内容为: #! /bin/sh for i in {1..10} do echo $i done 上面的代码从1到 ...

随机推荐

  1. 关于PHP如何用实现防止用户在浏览器上使用后退功能重复提交输入

    $(function(){ if(window.history && window.history.pushState){ $(window).on('popstate',functi ...

  2. 返回一个可用的名称如1_4.txt

    );     MessageBox.Show(tt); }

  3. 【POJ1811】Prime Test

    [题目大意] 若n是素数,输出“Prime”,否则输出n的最小素因子,(n<=2^54) [题解] 和bzoj3667差不多,知识这道题没那么坑. 直接上Pollord_Rho和Rabin_Mi ...

  4. 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块

    Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡.一个最简单的 upstream 写法如下: server backend1.example.co ...

  5. Mask_RCNN测试自己的模型(练习)

    # coding: utf-8 # In[323]: import osimport sysimport randomimport mathimport numpy as npimport skima ...

  6. ssh的发展历程与基本原理

    一.ssh是什么 SSH(Secure Shell)是一个提供数据通信安全.远程登录.远程指令执行等功能的安全网络协议,最初提出目的是替代非安全的Telnet.rsh.rexec等远程Shell协议. ...

  7. java中的不死兔问题(斐波那契数列)(递归思想)

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? public class Item { public static ...

  8. ProxyPattern(23种设计模式之一)

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

  9. JSON_UNESCAPED_UNICODE

    JSON_UNESCAPED_UNICODE(中文不转为unicode)

  10. AspnetBoilerplate (ABP) Organization Units 组织结构管理

    ABP是一个成熟的.NET框架,功能完善.目前由于项目需要正在自学中. ABP对于组织节点管理这一基本上每个项目都要反复重复开发的内容,进行了自己的实现. 主要包括这些常用功能: 多租户 树结构管理的 ...