linux中$的各种含义

我们先写一个简单的脚本,执行以后再解释各个变量的意义 
  
# touch variable # vi variable 
  
脚本内容如下: 
  
#!/bin/sh 
echo "number:$#" echo "scname:$0" echo "first :$1" echo "second:$2" echo "argume:[email protected]" 
echo "show parm list:$*" echo "show process id:$$" echo "show precomm stat: $?" 保存退出 
  
赋予脚本执行权限 
  
# chmod +x variable 
  
执行脚本 
  
# ./variable aa bb number:2 
scname:./variable first:aa second:bb argume:aa bb 
show parm list:aa bb show process id:24544

show precomm stat:0 
  
通过显示结果可以看到: 
  
$# 是传给脚本的参数个数 $0 是脚本本身的名字 
$1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 [email protected] 是传给脚本的所有参数的列表 
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 
$$ 是脚本运行的当前进程ID号 
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

时间: 2024-08-01 10:46:16

linux中$的各种含义的相关文章

【转】Linux中的EAGAIN含义

在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). 从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候.例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读,此时程序不会阻塞起来等待数据准备就绪返回,read函数会返回一个错误EAGAIN,提示你的应用程序现在没有数据可读请稍后再试.

linux中的likely与unlikely

likely() 与 unlikely()是内核(2.6的版本应该都有)中定义的两个宏.位于/include/linux/compiler.h中, 具体定义如下: #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) __builtin_expect是gcc(版本>=2.96,网上写的,我没验证过)中提供的一个预处理命令(这个名词也是网上写的,我想叫函数更好些),有利

Linux中的EAGAIN含义

首先是我把套接字设置为异步的了,然后在使用write发送数据时采取的方式是循环发送大量的数据:由于是异步的,write\send将要发送的数据提交到发送缓冲区后是立即返回的,并不需要对端确认数据已接收.在这种情况下是很有可能出现发送缓冲区被填满,导致write\send无法再向缓冲区提交要发送的数据.因此就产生了Resource temporarily unavailable的错误,EAGAIN 的意思也很明显,就是要你再次尝试. 从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一

Linux文件权限符号含义

Linux文件权限符号含义在Linux中,每个文件都有不同的权限.用户可以使用ls -l命令查看权限属性.其中,符号含义如下所示:r:读权限.w:写权限.x:可执行权限.-:没有权限.s:SET位权限.t:粘滞位权限.例如,可执行文件ls的权限为-rwxr-xr-x.其中,第一个符号表示文件类型,-表示普通文件:后面分别为所有者权限.所属组的权限和其它用户权限.这里,表示ls文件的所有者权限为读.写和可执行:所属组的权限为读和可执行:其它用户权限为读和可执行.在一些文件权限属性后面,可能显示为点

linux常用命令及其含义

1.RPM 1). RPM作用: RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”. 2).RPM含义: RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:在Fedora .Redhat.Mandriva.SuSE.YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用: RPM包里面都包含什么?里

Linux中的man

1.查看命令的帮助信息 man mkdir 2.查看服务配置文件的帮助信息 man services 说明: a.如果没有man通过yum install man安装 b.如果命令和服务同名了,那就指定清楚 1.Linux中通过whereis xxx可以看到xxx的命令和帮助文档地址 2.帮助文档如果是xxx.1.gz则xxx为命令 3.帮助文档如果是xxx.5.gz则xxx为服务 4.这时候使用man的时候可以加上1或者5来指定,例如:man 5 xxx c.只能查看非bash级别的命令 d.

Linux目录规范和含义(转)

Linux目录配置 在了解了每个文件的相关种类与属性,以及了解了如何更改文件属性/权限的相关信息后,再来要了解的就是, 为什么每套Linux distributions他们的配置文件啊.执行文件啊.每个目录内放置的咚咚啊,其实都差不多? 原来是有一套标准依据的 Linux目录配置的依据--FHS 因为利用Linux来开发产品或distributions的社群/公司与个人实在太多了, 如果每个人都用自己的想法来配置文件放置的目录,那么将可能造成很多管理上的困扰. 你能想象,你进入一个企业之后,所接

[Android ] linux命令英文缩写的含义(方便记忆)

du -sh */ reference to : http://blog.chinaunix.net/uid-27164517-id-3299073.html linux常用命令的英文单词缩写 命令缩写:ls:list(列出目录内容)cd:Change Directory(改变目录)su:switch user 切换用户rpm:redhat package manager 红帽子打包管理器pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径ps: proc

安装MYSQl/apache/php在linux中

1. 安装mysqlcd /usr/local/src/ wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz注意:上面的地址是32位机器用的,如果你的机器是64位,下载这个包(http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz)安装方法是一样的.ta

关于linux中的man

Linux中 man命令是初学者必须要掌握的一个Linux重要命令,这个命令可以帮助在学习中遇到的各种不会使用的命令问题,每个命令的不同的使用方法都可以在这里查找的到,获得相关的帮助信息. (1)man就是manual的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分,如下所示: 1 Executable programs or shell commands  普通用户, 可由任何人启动的. 2 System calls (functions provided by the ke