linux--shell中$参数提取
来源:互联网 发布:wlan 数据分流技术 编辑:程序博客网 时间:2024/05/16 02:41
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组用
-------------------------------------------------------我是分割线-------------------------------------------------
UID是用户ID,PID是进程ID,PPID是父进程ID。
getppid() 获取父进程 id,
getpid() 获取当前进程 id.
pid = 0表示是子进程,
pid > 0表示是父进程阿,
pid < 0通常指创建进程失败而返回给父进程的值
linux下的pid起始数为1 永远是init进程
pid=1 :init进程,系统启动的第一个用户级进程,是所有其它进程的父进程,引导用户空间服务。
pid=2 :kthreadd:用于内核线程管理。
pid=3 :migration,用于进程在不同的CPU间迁移。
pid=4 :ksoftirqd,内核里的软中断守护线程,用于在系统空闲时定时处理软中断事务。
pid=5 :watchdog,此进程是看门狗进程,用于监听内核异常。当系统出现宕机,可以利用watchdog进程将宕机时的一些堆栈信息写入指定文件,用于事后分析宕机的原因。
-------------------------------------------------------我是分割线-------------------------------------------------
假设我们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
可以用${ }分别替换得到不同的值:
${file#*/}:删掉第一个/及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个/ 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个. 及其左边的字符串:file.txt
${file##*.}:删掉最后一个. 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个/ 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
记忆的方法为:
# 是 去掉左边(键盘上#在 $ 的左边)
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
${file:0:5}:提取最左边的5个字节:/dir1
${file:5:5}:提取第5个字节右边的连续5个字节:/dir2
也可以对变量值里的字符串作替换:
${file/dir/path}:将第一个dir替换为path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:将全部dir替换为path:/path1/path2/path3/my.file.txt
利用${ }还可针对不同的变数状态赋值(沒设定、空值、非空值):
${file-my.file.txt} :假如$file沒有设定,則使用my.file.txt作传回值。(空值及非空值時不作处理)
${file:-my.file.txt} :假如$file沒有設定或為空值,則使用my.file.txt作傳回值。(非空值時不作处理)
${file+my.file.txt} :假如$file設為空值或非空值,均使用my.file.txt作傳回值。(沒設定時不作处理)
${file:+my.file.txt} :若$file為非空值,則使用my.file.txt作傳回值。(沒設定及空值時不作处理)
${file=my.file.txt} :若$file沒設定,則使用my.file.txt作傳回值,同時將$file賦值為my.file.txt。(空值及非空值時不作处理)
${file:=my.file.txt} :若$file沒設定或為空值,則使用my.file.txt作傳回值,同時將$file賦值為my.file.txt。(非空值時不作处理)
${file?my.file.txt} :若$file沒設定,則將my.file.txt輸出至STDERR。(空值及非空值時不作处理)
${file:?my.file.txt} :若$file 没设定或为空值,则将my.file.txt输出至STDERR。(非空值時不作处理)
${#var}可计算出变量值的长度:
- linux--shell中$参数提取
- Linux Shell中特殊参数
- Linux Shell中特殊参数
- [Linux.Shell] 变量提取
- shell中提取时间
- LINUX中,Shell 参数置换变量
- linux shell中函数参数及其变量
- Linux shell编程中read参数说明
- Linux shell脚本中判断参数用法
- linux shell 提取 ip 地址
- Linux shell 中参数变量&shell中的双引号
- shell中提取子串
- shell中提取子串
- Shell脚本中提取字符串
- Linux shell参数
- Linux shell参数
- linux shell if 参数
- linux shell if 参数
- 第八章 IO库
- (1.1.24)C++输入cin详解
- 第一篇
- 应对sql语句中出现的引号问题
- ext 在Window窗口中添加Panel添加htmleditor无法显示下拉字体选择
- linux--shell中$参数提取
- android httpclient 设置超时
- VTK boolean operation 使用方法
- VC开发中三种调试技术
- android中include和merge标记的区别和使用
- socket failed: EACCES (Permission denied)
- 网桥的功能和分类
- TURN概述.
- IOS icon的尺寸