只想知道 发表于 2015-1-16 10:59:33

来一发linux shell利用if时判别参数先容

为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的。
shell编程中利用到得if语句内判别参数
  Cb当file存在而且是块文件时前往真
  -c当file存在而且是字符文件时前往真
  -d当pathname存在而且是一个目次时前往真
  -e当pathname指定的文件或目次存在时前往真
  -f当file存在而且是正轨文件时前往真
  -g当由pathname指定的文件或目次存在而且设置了SGID位时前往为真
  -h当file存在而且是标记链接文件时前往真,该选项在一些老体系上有效
  -k当由pathname指定的文件或目次存在而且设置了“粘滞”位时前往真
  -p当file存在而且是命令管道时前往为真
  -r当由pathname指定的文件或目次存在而且可读时前往为真
  -s当file存在文件巨细年夜于0时前往真
  -u当由pathname指定的文件或目次存在而且设置了SUID位时前往真
  -w当由pathname指定的文件或目次存在而且可实行时前往真。一个目次为了它的内容被会见一定是可实行的。
  -o当由pathname指定的文件或目次存在而且被子以后历程的无效用户ID所指定的用户具有时前往真。
  UNIXShell内里对照字符写法:
  -eq即是
  -ne不即是
  -gt年夜于
  -lt小于
  -le小于即是
  -ge年夜于即是
  -z空串
  =两个字符相称
  !=两个字符不等
  -n非空串
  -------------------------------------------------------------------------
  更加具体的申明:
  运算符形貌示例
  文件对照运算符
  -efilename假如filename存在,则为真[-e/var/log/syslog]
  -dfilename假如filename为目次,则为真[-d/tmp/mydir]
  -ffilename假如filename为惯例文件,则为真[-f/usr/bin/grep]
  -Lfilename假如filename为标记链接,则为真[-L/usr/bin/grep]
  -rfilename假如filename可读,则为真[-r/var/log/syslog]
  -wfilename假如filename可写,则为真[-w/var/mytmp.txt]
  -xfilename假如filename可实行,则为真[-L/usr/bin/grep]
  filename1-ntfilename2假如filename1比filename2新,则为真
  filename1-otfilename2假如filename1比filename2旧,则为真
  字符串对照运算符(请注重引号的利用,这是避免空格侵扰代码的好办法)
  -zstring假如string长度为零,则为真[-z$myvar]
  -nstring&nbsp
12下一页


买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快.特别适合英语不好。

只想知道 发表于 2015-1-16 12:20:15

来一发linux shell利用if时判别参数先容

在linux中学习命令的最好办法是学习Shell脚本编程,Shell脚本比起其他语言来学习简单,但是功能却十分强大.通过学习Shell编程,能让你掌握大量的linux命令。
;假如string长度非零,则为真[-n$myvar]</P>  string1=string2假如string1与string2不异,则为真[$myvar=onetwothree]
  string1!=string2假如string1与string2分歧,则为真[$myvar!=onetwothree]
  算术对照运算符
  num1-eqnum2即是
  num1-nenum2不即是
  num1-ltnum2小于
  num1-lenum2小于或即是
  num1-gtnum2年夜于
  num1-genum2年夜于或即是
  剧本示例:
  #!/bin/bash
  #Thisscriptprintsamessageaboutyourweightifyougiveityour
  #weightinkilosandhightincentimeters.
  if[!$#==2];then
  echo"Usage:{GetProperty(Content)}weight_in_kiloslength_in_centimeters"
  exit
  fi
  weight="{GetProperty(Content)}"
  height="$2"
  idealweight=$[$height-110]
  if[$weight-le$idealweight];then
  echo"Youshouldeatabitmorefat."
  else
  echo"Youshouldeatabitmorefruit."
  fi
  #weight.sh70150
  Youshouldeatabitmorefruit.
  #weight.sh7015033
  Usage:./weight.shweight_in_kiloslength_in_centimeters
  地位参数{GetProperty(Content)},$2,...,$N,$#代表了命令行的参数数目,{GetProperty(Content)}代表了剧本的名字,
  第一个参数代表{GetProperty(Content)},第二个参数代表$2,以此类推,参数数目的总数存在$#中,下面的例子显现了怎样改动剧本,假如参数少于大概过剩2个来打印出一条动静。
  实行,并检察情形。
  #bash-xtijian.sh60170
  +weight=60
  +height=170
  +idealweight=60
  +
  +echoYoushouldeatabitmorefat.
  Youshouldeatabitmorefat.
  个中-x用来反省剧本的实行情形

</p>上一页12


无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。

变相怪杰 发表于 2015-1-18 15:03:40

任何一个叫做操作系统的工具都是这样子构成的:内核+用户界面+一般应用程序。

冷月葬花魂 发表于 2015-1-27 09:38:46

掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。

不帅 发表于 2015-2-5 10:57:19

发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。

莫相离 发表于 2015-2-11 12:30:32

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。

柔情似水 发表于 2015-3-2 14:08:57

感谢老师和同学们在学习上对我的帮助。

精灵巫婆 发表于 2015-3-11 05:00:58

下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。

再现理想 发表于 2015-3-17 22:02:48

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

兰色精灵 发表于 2015-3-25 04:30:04

老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。
页: [1]
查看完整版本: 来一发linux shell利用if时判别参数先容