第十天:脚本复习与使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
#count line of these files
echo "there are $# files"

for x in $@;do
if [ -e $x ];then
  Dline=`wc -l $x`
  Tline=` echo $Dline | cut -d" " -f 1`
  echo "your file $x have $Tline"
  SumLine=$[ $SumLine + $Tline ]
  #shift
else
  echo " $x dose not exist"
fi
#if [ -z $1 ];then
#  break
#fi
done
echo "Sum of the line: $SumLine"
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#用户批量创建
NumU=0
[ -z $1 ] &&  echo "no username,exit now!" && exit
for Name in $@;do
  adduser $Name
  echo $Name | passwd --stdin $Name &> /dev/null
  NumU=$[ $NumU + 1 ]
done
echo "there $NumU has been created!"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/python
#脚本作用:解析命令行选项,注释的代码出现了问题,后面去验证并解决~
'''
import f1
print ('that is import file')
#search.py
import argparse
parser = argparse.ArgumentParser(description='Search some file')

parser.add_argument(dest='filename', metavar='filename', nargs='*')

parser.add_argument('-p', '--pat', metavar='parttern', reqired=True,
                    dest='parttern', action='append',
                    help='text pattern to search for')

args = parser.parse_args()
print(args.filename)
print(args.parttern)
print(args.verbose)
print(args.outfile)
print(args.speed)
'''

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')

args = parser.parse_args()
print(args.accumulate(args.integers))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/python3
#python strip
'''
print ('header')
title = "the meaning of title"
a = 'a!'
b = 'b!'
c = 'c!'
'''

'这是创建用户和删除用户的脚本'
import fileinput
with fileinput.input() as f_input:
    with open("delusr.sh", "w+") as f:
        for line in f_input:
            f.write('userdel ' + line)
            print("this user will be put in del list: " + line)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/python3
#python strip
'''
print ('header')
title = "the meaning of title"
a = 'a!'
b = 'b!'
c = 'c!'
'''

'这是创建用户和删除用户的脚本'
import getpass
import fileinput
print("this a root program, and you should enter you password")
user = getpass.getuser()
passwd = getpass.getpass()
def svc_login(user, passwd):
    '''
    支持缓冲区协议和 canexport C 连续缓冲区对象。这包括所有字节、 bytearray,和文件对象,
    以及 manycommon memoryview 对象。 字节类似物体可以被用于各种行动来处理二进制数据;
    这些 includecompression,保存到一个二进制文件,并通过套接字发送。
    有些操作需要可变的二进制数据。 文档通常是指这些作为"读写字节喜欢的对象"。
    Examplemutable 缓冲区对象包括 bytearray 和一个 bytearray,
    其中 amemoryview。其他操作需要的二进制数据被存储的 inimmutable 对象
    ("只读字节-喜欢的对象");例子包括字节和字节对象的内存视图。
    '''

    #TODO 完善后续密码加密功能,将加密的密码与输入的密码进行加密操作后对比,进行验证
    passwdFile = open('/test/passwd','r')
    for LineP in passwdFile:
        if user == lineP.split(":")[0]:
            if passwd == lineP.split(":")[1]
            print("Login successful")
        else:
            pass
    else:
        print("Login unsuccessful")
if svc_login(user, passwd):
    print("权利越大,责任越大,我想你应该明白这点")
with fileinput.input() as f_input:
    with open("delusr.sh", "w+") as f:
        for line in f_input:
            Nline = line.split(":")[0]
            f.write('userdel ' + line)
            print("this user will be put in del list: " + line,end='')

转载:自定义或编写简单脚本

变量赋值和算法

在学习任何编程语言时,都会学习如何将值赋给变量。在本系列前面的教程中,您学习了如何将字符串值赋给变量。Bash 支持使用整数的 shell 算法。您可以将一个表达式计算为算术值,并使用 let 内建命令将它赋给一个变量。您可以明确将变量声明为整数变量,未来对它的赋值将会计算为整数表达式。 清单 1显示了两种方法的示例和一些细微区别。

清单 1. 变量赋值和算法
ian@attic-u15:~$ x=3+4
ian@attic-u15:~$ let y=5*10
ian@attic-u15:~$ declare -i z=5*4/3
ian@attic-u15:~$ echo $x $y $z
3+4 50 6
ian@attic-u15:~$ # Use declare -p to show more information
ian@attic-u15:~$ declare -p x y z
declare — x=”3+4″
declare — y=”50″
declare -i z=”6″

请注意,只有变量 z被声明为整数。

您可以在 shell 算法中使用大部分 C 或 C++ 算术运算符,包括逐位和逻辑运算符。您可