加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell 脚本的符号含义

发布时间:2020-12-15 20:07:09 所属栏目:安全 来源:网络整理
导读:1、while [ $x -lt 10 ] -lt less than 小于 -gt great than 大于 -ge great equal大于等于 -le less equal 小于等于 -eq equal 等于 shell中的比较不是使用简单的 = 等,而是用扩展符,如下所示: -eq //equal 等于 -ne //no equal 不等于 -gt //great than

1、while [ $x -lt 10 ]

-lt less than 小于
-gt great than 大于
-ge great equal大于等于
-le less equal 小于等于

-eq equal 等于

shell中的比较不是使用简单的> = <等,而是用扩展符,如下所示:

-eq //equal 等于

-ne //no equal 不等于

-gt //great than 大于

-lt // low than 小于

ge // great and equal 大于等于,注意没有"-"

le //low and equal 小于等于,注意没有“-”



举例说:
脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

2、 : << ! !
<< 就是制定了标识符的意思,比如
<<!
a命令
b命令
c命令
!
就是为了说这是一个整体 你可以理解和{} 一样
就是说层级一样
 
 
3、

linux之ls -l|grep "^-"|wc -l命令

 
 

查看某文件夹下文件的个数

ls -l |grep "^-"|wc -l

find ./company -type f | wc -l

查看某文件夹下文件的个数,包括子文件夹里的。

ls -lR|grep "^-"|wc -l

查看某文件夹下文件夹的个数,包括子文件夹里的。

ls -lR|grep "^d"|wc -l

说明:

ls -l

长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)

grep "^-"

这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d

wc -l

统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于

一行信息对应一个文件,所以也就是文件的个数。

4、
 
 

linux shell cat(一)

cat主要有三大功能:1.一次显示整个文件。$ catfilename2.从键盘创建一个文件。$ cat>filename 只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件: $catfile1file2 > file
参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v 或 --show-nonprinting例:把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。cat -b textfile1 textfile2 >> textfile3
cat /dev/null > /etc/test.txt 把test.txt文件扔进垃圾箱
5、
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
至于!号那就是取非了呗!
6、
 
 

shell 中 seq的用法总结

 
 

用法:seq [选项]... 尾数
 或:seq [选项]... 首数 尾数
 或:seq [选项]... 首数 增量 尾数
以指定增量从首数开始打印数字到尾数。
-f,--format=格式 使用printf 样式的浮点格式
-s,--separator=字符串使用指定字符串分隔数字(默认使用:n)
-w,--equal-width 在列前添加0 使得宽度相同
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果省略了首数或者增量,则默认其值为1,即使这样尾数仍小于首数。
首数、增量和尾数均以浮点数形式解释。当首数小于尾数时增量一般为正值,
相反在首数大于尾数时增量一般为负数。
指定的格式必须适用于显示"double"类型的参数;当首数、增量和尾数均为指定
精确度的定点十进制数时默认为"%.精确度f",否则默认为"%g"。
从1循环到100的两种方法(bash 其它的shell没试过)
for x in `seq 1 100`;do echo $x;done
for x in {1..100};do echo $x;done
输出1-100中,不包含数字7,且不能被7整除的数
seq 100 | grep -v "7" | awk '$0%7!=0{print}'

另外,不用 seq 的话还可以这样:[root@ubuntu]# for i in {1..10};do echo $i;done1 和 10 之间是两个半角的点

7/
 
 
给你个全的,你在Linux环境下多试下就明白了:
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$*类似,但是可以当作数组
8/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读