小程序告一段落,达到阶段性目标。下一步继续Linux的学习。。。。脑子不够用啊。。。真费。。。

书中介绍。。检测系统某些文件或者相关属性时,用test指令。。

例如。测试某个文档目录是否存在可以  test -e /aaa 点输出,没有任何结果?想要看到结果该怎么操作呢?echo命令。

test -e /aaaa && echo "存在" || echo "不存在"   输出结果  不存在。好啦,我记忆却是太差了。。。&& ||  两者啥意思?百度

在linux中,&和&&,|和||介绍如下:

&  表示任务在后台执行,如要在后台运行redis-server,则有  redis-server &

&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'

| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l

|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"

test的详细介绍,如下面一大堆图。。。我想吐

我觉得上面这一坨东西,只有用到的时候现查比较实在吧。。。。。哎。。。好痛苦

来个例子压压惊

vim file_perm.sh

1 echo -e 'input file name \n'
2 read -p 'input file name : ' filename
3 test -z filename && echo 'you must input filename ' && exit 0
4 test ! -e ${filename} && echo 'the filename is not exits' && exit 0
5 test -f ${filename} && filetype='regulare file'
6 test -d ${filename} && filetype='directory'
7 test -r ${filename} && perm= 'readable'
8 test -w ${filename} && perm= '${perm} writable'
9 test -x ${filename} && perm= '${perm} executable'
10
11 echo 'The filename:${filename} is a ${filetype}'
12 echo 'and the permissions for you are :${perm}'

执行 sh file_perm.sh

我去。竟然提示readable 不是指令,见鬼啦。。。。难道是单引号和双引号的问题么?

。未找到命令。。。单引号改双引号,还是没用。。。好吧,难道是我默写错了?对照着书看一遍代码。。。

没错啊。。难道是因为没加PATH?不可能啊。。。这就是个环境变量,不影响啊,算了,保险起见加上。。。问题依旧。。。。一头汗。。。。这是什么鬼。。。。。。。。。。。。。

抽根烟,冷静冷静。。。。

抽完烟回来。。再仔细看了看代码。。。发现。在parm= "readable"的readable看到没,前面有个空格。。。空格。。。空格。。。写程序老是习惯空格以看起来规整。。这倒好。。。将空格删掉,试试。。。

完美,贴图如下:

。变量名=后面不能加空格。天坑啊。。。。百度一下,为啥去

结论如下

强烈注意, shell中变量在赋值的的时候, 等号前后一定不要有空格.

如果出现空格会怎么样?

注:以下 "^" 代表空格

1. "=" 前空格

"VARIABLE^ =value"
 脚本将尝试运行一个"VARIABLE"的命令, 带着一个"=value" 参数.

2."="后空格

"VARIABLE=^value"
 脚本将尝试运行一个"value"的命令, 
并且带着一个被赋值成""的环境变量"VARIABLE".

shell script test指令的测试功能 &和&&,|和|| 区别 变量名赋值=号前后的空格问题(天坑)的更多相关文章

  1. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  2. shell script入门

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  3. linux基础之Shell Script入门介绍

    本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...

  4. 第13章 学习shell script

    由于博客园中dollar符号有别的意义,所以文中的dollar符号使用¥表示 第一个script [root@localhost script]# cat -n sh01.sh #!/bin/bash ...

  5. shell及脚本4——shell script

    一.格式 1.1 开头 必须以 "# !/bin/bash"  开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...

  6. shell script

    一.shell script的编写与执行 1.shell script 的编写中还需要用到下面的注意事项: a.命令的执行是从上到下,从左到右地分析与执行 b.命令.参数间的多个空白都会被忽略掉 c. ...

  7. 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script

    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...

  8. shell script 的追踪与 debug

    shell script 的追踪与 debug scripts 在运行之前,最怕的就是出现语法错误的问题了!那么我们如何 debug 呢?有没有办法不需要透过直接运行该 scripts 就可以来判断是 ...

  9. bash shell学习-shell script基础 (笔记)

    A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版)  Linux ...

随机推荐

  1. gevent协程之猴子补丁带来的坑

    我们都知道使用gevent协程时,经常会看见在导入包的时候看见这样的代码 from gevent import monkey; monkey.patch_all() monkey.patch_all( ...

  2. windows系统下MySQL中遇到1045问题

    报错内容为"1045    Access denied for user 'root'@'localhost' (using password:YES)",对应的原因是密码错误,如 ...

  3. CF963E Circles of Waiting

    Circles of Waiting 求一个整点四连通随机游⾛,离原点距离超过R期望步数.R≤50. 带状矩阵法 本质上就是网格图的随机游走. \[ E_x=\sum_y P_{x,y}E_y+1 \ ...

  4. java web项目获取项目路径

    注意:有时获取到的项目路径后再+“自定义路径后” 路径不可用,这时要看下项目里自定义路径是不是空文件夹,如果是空文件夹则调试和运行时文件夹不会编译到部署文件里. 1.方法一 调试时只能获取eclips ...

  5. OpenLayers API整理

    整理的Openlayers 的知识笔记,随着运用不断加深理解,也会不断更新. 本文链接:Openlayers API整理 作者:狐狸家的鱼 GitHub:八至 一.创建地图 1.地图Map 创建地图底 ...

  6. 关于LCN分布式事务框架

    基于LCN框架解决分布式事务 LCN官网 https://www.txlcn.org/ "LCN并不生产事务,LCN只是本地事务的搬运工" 兼容 dubbo.springcloud ...

  7. linux安装apue.3e

    (1)下载源代码,可以去官网下载:http://apuebook.com/code3e.html (2)解压缩源代码文件:tar -zxvf src.3e.tar.gz (3) 安装静态链接库:sud ...

  8. Delphi 正则表达式之TPerlRegEx

    官方网站: http://www.regular-expressions.info/delphi.html 直接下载: http://www.regular-expressions.info/down ...

  9. AcWing 217. 绿豆蛙的归宿 (概率期望+拓扑排序)打卡

    给出一个有向无环的连通图,起点为1,终点为N,每条边都有一个长度. 数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点. 绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如果有K条离 ...

  10. PHP面试 javascript和jQuery 基础

    JavaScript基础 JavaScript语法 变量的定义:变量必须以字母开头   可以使用$和 _ 符号开头  变量名称对大小写敏感 使用 var 关键词声明变量   可以一次声明多个变量    ...