美文网首页
[Linux笔录]Linux/Shell笔记

[Linux笔录]Linux/Shell笔记

作者: 杨山炮 | 来源:发表于2020-01-30 14:31 被阅读0次

Shell中的$几种含义

  • $# 是传给脚本的参数个数
  • $0 是脚本本身的名字
  • $1 是传递给该shell脚本的第一个参数
  • $2 是传递给该shell脚本的第二个参数
  • $@ 是传给脚本的所有参数的列表eg: "1" "2" "3"
  • $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同 eg:"1 2 3"
  • $$ 是脚本运行的当前进程ID号
  • $- 显示Shell使用的当前选项,与set命令功能相同 |
  • $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

文件测试运算符

  • -e (equal) filename, 判断文件是否存在
  • -d (directory) filename,判断文件是否为目录
  • -f (file) filename,判断文件是否为常规文件
  • -L (link) filename,判断文件是否问链接文件
  • -r (read) filename,判断文件是否可读
  • -w (write) filename,判断文件是否可写
  • -x (exec) filename,判断文件是否可执行
  • -s filename,判断文件长度是否为0
  • -h filename,判断文件是否为硬链接文件
  • filename1 -nt (newer than) filename2,判断文件1是否比文件2新
  • filename1 -ot (older than) filename2,判断文件1是否比文件2旧

${}高级用法

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

https://blog.csdn.net/SeaSky_Steven/article/details/103281133

image.png

相关文章

  • linux shell脚本攻略笔记

    LINUX SHELL脚本攻略笔记[速查] linux shell脚本攻略笔记

  • [Linux笔录]Linux/Shell笔记

    Shell中的$几种含义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一...

  • Linux Shell学习笔记

    Linux Shell学习笔记 基本信息 系统:Debian 9.5 发行信息:Debian GNU/Linux ...

  • 1.1 开始

    《Linux Shell 脚本攻略(第 2 版)》读书笔记 Bash (Bourne Again Shell)是目...

  • Linux基础学习笔记2 Shell

    Linux基础学习笔记2 Shell 本文发布于博客frankwtq 这是Linux基础学习笔记的第二部分,主要介...

  • Linux下的shell

    Shell 和 Linux shell程序是包含若干行shell或linux命令的文件。linux命令语句只能一行...

  • Shell学习

    Linux Shell基础教程 (一) (二) Linux Shell简明教程(推荐) (一) (二) Linux...

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • Shell 脚本编程简介

    Shell菜鸟教程[https://www.runoob.com/linux/linux-shell.html] ...

  • Shell 学习笔记

    Shell 学习笔记 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是...

网友评论

      本文标题:[Linux笔录]Linux/Shell笔记

      本文链接:https://www.haomeiwen.com/subject/eemithtx.html