当前位置:  技术问答>linux和unix

shell编程的几个小问题

    来源: 互联网  发布时间:2016-12-11

    本文导语:  1 declare ??  2  expr 3 + 5  显示值是 8          b='expr 3 + 5' //???            echo $b   为什么b的值不是8    显示的是expr 3 + 5                   3   test b -gt 10;echo $? 大于     test b -e...

1 declare ?? 
2  expr 3 + 5  显示值是 8         
b='expr 3 + 5' //???           
echo $b   为什么b的值不是8    显示的是expr 3 + 5                  
3
  test b -gt 10;echo $? 大于    
test b -eq 10;echo $? equalles
test b -le 10;echo $? 等于    
test b -ne 10;echo $? 不等于  
当给b赋值9时 结果都是显示2

4   
test -n "aaaa"; echo $? //-n?? 用与不用一样  -n -z 什么意思?
test -z "" ;echo $?  //??                 

 d='cat te.sh' 把文件内容放到变量 
  echo $d //为什么显示的是cat te.sh 而不是里面的内容

--------------------------------------------------------
1  sbrk 与 brk 有什么不同

|

1.
http://archive.cnblogs.com/a/2024857/

2.
单引号改为反引号
3.
怎么逻辑表达式的返回值为2呢?不懂
4、
-z       字符串为"null".就是长度为0. 
-n       字符串不为"null" 
5.
和问题2一样
6.
没用过,等大神来

|

看第二题,expr 3 + 5 这是一个命令,用单引号括起来,他就是一个字符串了,所以echo $b得到的只能是字符串,而不能是11。你想,如果我随便定义b的值b='abc',你echo $b ,找你那样,是不是shell要执行abc这个命令,然后shell发现没有abc这个命令,于是报错?肯定不是这样了。
如果想要得到你的结果,可以用这样取得命令的结果并保持b=$(expr 3 + 5) 这样,b的值才是11,
还有一种方法,就是让shell再一次对命令进行解析,也就是#b='expr 3 + 5'  ; eval $b

下面第五个同理,要么d=$(cat datafile)  再echo $d  ;要么d='cat datafile'再eval  $d

|
2 expr 3 + 5 显示值是 8  
b='expr 3 + 5' //???  
echo $b 为什么b的值不是8 显示的是expr 3 + 5   
因为b的值是单引号包起来的字符串

|
 b=$(expr 3 + 5)这种形式就可以了

$ test 9 -gt 10;echo $?
1
$ test 9 -eq  10;echo $?
1
:~$  test 9 -lt 10;echo $?
0
$ test 9 -ne  10;echo $?
0


|
man test

       -n STRING
              the length of STRING is nonzero

       STRING equivalent to -n STRING

       -z STRING
              the length of STRING is zero

|
注意单引号与反引号的区别

brk  sets  the  end  of  the  data  segment  to  the value specified by end_data_segment, when that value is reasonable, the system  does  have  enough  memory  and  the process does not exceed its max data size (see  setrlimit(2)).

sbrk increments the program's data  space  by  increment  bytes.   sbrk  isn't a system call, it is just a C library wrapper.  Calling sbrk with   an increment of 0 can be used to find the current location of the  program break.

|
3
   把b改成$b就行了
   b是字符,而$b才是取的b的变量值。

|
sbrk不是系统调用,是C库函数。系统调用通常提供一种最小界面,而库函数通常提供比较复杂的功能。

brk()是一个非常简单的系统调用,只是简单地改变mm_struct结构的成员变量brk的值。


|
b=$(expr 3 + 5)这种形式就可以了

$ test 9 -gt 10;echo $?
1
$ test 9 -eq 10;echo $?
1
:~$ test 9 -lt 10;echo $?
0
$ test 9 -ne 10;echo $?
0


    
 
 

您可能感兴趣的文章:

  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 请问什么是shell编程?一般都用shell编程实现什么?
  • 请教一个shell编程的问题,就是如何在shell编程中读一个文件的内容?谢谢啦!
  • Linux下的编程指的就是Shell编程吗?
  • 那里有《shell编程》和关于curses编程的教程可以下载,请帮忙?
  • C编程与shell编程有什么区别,两者有没有从属关系?
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • 刚学Shell编程,问个关于Shell中if语句的问题
  • 如何学UNIX的SHELL编程
  • 请推荐基本shell编程书籍
  • 请大家推荐一本shell编程方面的书
  • 给我推荐点shell编程的学习资料。
  • 谁有linux shell编程方面比较好的语法资料哦?
  • 关于Shell编程???
  • 学好SHELL编程能从事什么职业?
  • 关于shell脚本编程
  • .net/c#/asp.net iis7站长之家
  • shell变量和子shell的问题请教
  • 请教 一个shell问题 如何通过shell获得一个日志文件中的增量部分
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 使用shell在文本文件中进行字符串搜索问题?shell高手请进,分不够可以再加
  • vim问题,怎么不启动shell窗口,而只是把shell结果放到vim自身的command 栏里去?
  • shell:sql问题,如何shell循环将不同表数据写入文件中...
  • 求助关于Java调用shell再传值给shell的问题
  • 一个奇怪的shell问题
  • 有关裁减内核及shell命令的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 小弟没写过shell,求解 linux shell 命令
  • 子shell改变父shell定义变量的值
  • shell脚本如何调用另外一个shell脚本的函数?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3