File tree Expand file tree Collapse file tree 5 files changed +246
-2
lines changed Expand file tree Collapse file tree 5 files changed +246
-2
lines changed Original file line number Diff line number Diff line change 20
20
21
21
ɾ��ƥ����
22
22
23
- sed -i '/ƥ���ַ���/d' filename ��ע����ƥ���ַ����DZ���������Ҫ�����������ǡ������ǵú����ǣ�
23
+ sed -i '/ƥ���ַ���/d' filename1 filename2 ��ע����ƥ���ַ����DZ���������Ҫ�����������ǡ������ǵú����ǣ�
24
24
25
25
�滻ƥ�����е�ij���ַ���
26
26
27
- sed -i '/ƥ���ַ���/s/�滻Դ�ַ���/�滻Ŀ���ַ���/g' filename
27
+ sed -i '/ƥ���ַ���/a testtest' filename1 filename2 ��ƥ���ַ����������ַ���
28
+
29
+ sed -i '/ƥ���ַ���/s/�滻Դ�ַ���/�滻Ŀ���ַ���/g' filename1 filename2
30
+
31
+
32
+ sed -i 's/�滻Դ�ַ���/�滻Ŀ���ַ���/2' filename1 filename2 �����ڽ�βָ�����֣���ʾ�滻��2��ƥ����ַ���
33
+ �����������test��������
34
+ key1=value1����Ϊkey1=newValue
35
+ �����ַ�����
36
+ 1.��ɾ���
37
+ sed -i "/^key1=*/d" test
38
+ sed -i "/^key2=*/a key1=newValue" ---ע��˴�Ҫѡ��һ��������ڴ�֮ǰ����֮�����
39
+ 2.ֱ���滻 --ע����˫����
40
+ sed -i "/^key1=*/s/=.*/=newValue/" test
41
+
42
+
43
+
Original file line number Diff line number Diff line change 1
1
1 Shell���ò���ȡִ��jar����ķ���ֵ
2
+ http://www.cnblogs.com/dzblog/p/6914146.html
3
+ java��ͨ�� System.out.println(URL);���ؽ�����ӽ��̺����̻Ṳ���ļ����������
2
4
java -jar app.jar "args" | tail -1
3
5
4
6
2 �����Ҫ����JVM�˳�ʱ��״̬��Ҳ��δ�����ɡ�������֪����Ϊ����ִ����ϣ������˳�����0����0�ķ��ض��Ƿ������˳�������java����Ҳ������ôд��
@@ -12,3 +14,9 @@ public class Test {
12
14
java -jar test.jar
13
15
echo $?
14
16
17
+ 3 Shell�е���javaʱ�IJ���
18
+ temp_file=/var/tmp/temp$$_file
19
+ ava -cp $CLASS_PATH mainClass��$arg1�� ��$filePath�� ��$arg2�� ��$arg3�� > $temp_file
20
+
21
+ typeset result=cat $temp_file
22
+
Original file line number Diff line number Diff line change
1
+ # SSHAutoLogin
2
+ 一个SSH登录服务器的shell脚本,通常我们使用ssh登录服务器都要自己输入密码,而且容易输入错误,
3
+ 每当遇到这种情况甚是苦恼,下定决心自己写一个不用输入密码自动登录ssh的shell脚本。
4
+ ## 添加配置
5
+ 在ssh_login文件中,修改以下配置
6
+ ``` shell
7
+ CONFIGS=(
8
+ " 服务器名称 端口号 IP地址 登录用户名 登录密码"
9
+ " 服务器名称 端口号 IP地址 登录用户名 登录密码"
10
+ )
11
+ ```
12
+ 比如可以修改成:
13
+ ``` shell
14
+ CONFIGS=(
15
+ " 服务器名称 22 220.181.57.217 root baidu.com"
16
+ " 新浪服务器 22 66.102.251.33 root sina.com"
17
+ )
18
+ ```
19
+ 或者在脚本同目录下新建一个文件server_config,按照以上格式写入文件,每个配置单独一行如下:
20
+ ```
21
+ 服务器名称 22 220.181.57.217 root baidu.com
22
+ 新浪服务器 22 66.102.251.33 root sina.com
23
+ ```
24
+ ## 使用
25
+ 1).给ssh_login文件执行的权限,并执行ssh_login
26
+ ``` shell
27
+ chmod u+x ssh_login
28
+ ./ssh_login
29
+ ```
30
+ 2).可以将ssh_login 拷贝至 /usr/local ,之后便可以在终端中全局使用ssh_login
31
+ ``` shell
32
+ chmod u+x ssh_login
33
+ cp ssh_login /usr/local/
34
+ ssh_login
35
+ ```
36
+ 3).命令使用
37
+
38
+ ` ssh_login list ` - 查看所有服务器配置
39
+
40
+ ` ssh_login 1 ` - 登录第一个配置的服务器
41
+
42
+
43
+ ## 提示
44
+ 使用本脚本前,请确认已安装expect
45
+
46
+ 1 ) Linux 下 安装expect
47
+ ``` shell
48
+ yum install expect
49
+ ```
50
+ 2 ) Mac 下 安装expect
51
+ ``` shell
52
+ brew install homebrew/dupes/expect
53
+ ```
54
+
55
+ ## 特殊说明
56
+ 如果密码中含有以下特殊字符,请按照一下规则转义:
57
+ - \ 需转义为 \\\\ \
58
+ - } 需转义为 \\ }
59
+ - [ 需转义为 \\ [
60
+ - $ 需转义为 \\\\\\ $
61
+ - \` 需转义为 \\ `
62
+ - " 需转义为 \\\\\\ "
63
+
64
+ ```
65
+ 如密码为'-OU[]98' 在CONFIG配置中写成'-OU\[]98'
66
+ 否则,提示要手动输入密码
67
+ ```
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # Function : 使用except无需输入密码自动登录ssh
4
+ # Author :
5
+ # Date : 2016/01/14
6
+ # Github :
7
+
8
+ # 默认服务器配置项
9
+ # "服务器名称 端口号 IP地址 登录用户名 登录密码"
10
+ CONFIGS=(
11
+ " 服务器名称 22 220.181.57.217 root baidu.com"
12
+ " 新浪服务器 22 66.102.251.33 root sina.com"
13
+ )
14
+
15
+ # 读取自定义服务器配置文件(server_config)列表,合并服务器配置列表
16
+ if [ -f server_config ]; then
17
+ while read line
18
+ do
19
+ CONFIGS+=(" $line " )
20
+ done < server_config
21
+ fi
22
+
23
+ # 服务器配置数
24
+ CONFIG_LENGTH=${# CONFIGS[*]} # 配置站点个数
25
+
26
+ if [[ $CONFIG_LENGTH -le 0 ]] ;
27
+ then
28
+ echo " 未检测到服务器配置项!"
29
+ echo " 请在脚本CONFIGS变量中配置或单独创建一个server_config文件并配置"
30
+ exit ;
31
+ fi
32
+
33
+ # 服务器配置菜单
34
+ function ConfigList(){
35
+ for (( i= 0 ;i< ${CONFIG_LENGTH} ;i++ )) ;
36
+ do
37
+ CONFIG=(${CONFIGS[$i]} ) # 将一维sites字符串赋值到数组
38
+ serverNum=$(( $i + 1 ))
39
+ echo " ---(${serverNum} )--${CONFIG[0]} (${CONFIG[2]} )---"
40
+ done
41
+ }
42
+
43
+ # 登录菜单
44
+ function LoginMenu(){
45
+ if [ ! -n $1 ]; then
46
+ AutoLogin $1
47
+ else
48
+ echo " -------请输入登录的服务器序号---------"
49
+ ConfigList
50
+ echo " 请输入您选择登录的服务器序号: "
51
+ fi
52
+ }
53
+
54
+ # 选择登录的服务器
55
+ function ChooseServer(){
56
+ read serverNum
57
+ if [[ $serverNum -gt $CONFIG_LENGTH ]] ;
58
+ then
59
+ echo " 输入的序号不正确,请重新输入:"
60
+ ChooseServer ;
61
+ return ;
62
+ fi
63
+ if [[ $serverNum -lt 1 ]] ;
64
+ then
65
+ echo " 输入的序号不正确,请重新输入:"
66
+ ChooseServer ;
67
+ return ;
68
+ fi
69
+
70
+ AutoLogin $serverNum ;
71
+ }
72
+
73
+ # 自动登录
74
+ function AutoLogin(){
75
+
76
+ num=$(( $1 - 1 ))
77
+ CONFIG=(${CONFIGS[$num]} )
78
+ echo " 正在登录【${CONFIG[0]} 】"
79
+ expect -c "
80
+ spawn ssh -p ${CONFIG[1]} ${CONFIG[3]} @${CONFIG[2]}
81
+ expect {
82
+ \" *assword\" {set timeout 6000; send \" ${CONFIG[4]} \n\" ; exp_continue ; sleep 3; }
83
+ \" yes/no\" {send \" yes\n\" ; exp_continue;}
84
+ \" Last*\" { send_user \" \n成功登录【${CONFIG[0]} 】\n\" ;}
85
+ }
86
+
87
+ interact"
88
+ echo " 您已退出【${CONFIG[0]} 】"
89
+
90
+ }
91
+
92
+ # 程序入口
93
+ if [ 1 == $# ]; then
94
+ if [ ' list' == $1 ]; then
95
+ ConfigList
96
+ else
97
+ AutoLogin $1
98
+ fi
99
+ else
100
+ LoginMenu
101
+ ChooseServer
102
+ fi
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # set -x
4
+
5
+
6
+ function copyfile()
7
+ {
8
+ local srcfile=$1
9
+ local dstfile=$2
10
+
11
+ cp $srcfile $dstfile
12
+
13
+ return 0
14
+ }
15
+
16
+ # copyfile ./src.txt ./des.txt
17
+
18
+
19
+ function factorial
20
+ {
21
+ factorial=1
22
+ for (( i= 1 ;i <= $1 ;i++ ))
23
+ do
24
+ # $[] 啥用法?
25
+ factorial=$[ $factorial * $i ]
26
+ done
27
+ echo $1 的阶乘是:$factorial
28
+ }
29
+ # echo '程序名':$0,用于求阶乘
30
+ # factorial $1
31
+
32
+
33
+ g_var=
34
+ function mytest()
35
+ {
36
+ if [ $1 = " 1" ]; then
37
+ echo " arg1 = $1 "
38
+ g_var=test
39
+ return 1 # return to pipe only
40
+ else
41
+ g_var=default
42
+ return 0
43
+ fi
44
+
45
+ }
46
+ mytest $1
47
+ echo " result = " $?
48
+ result=` mytest $1 `
49
+ echo $result
50
+ echo " g_var ; " $g_var
51
+
You can’t perform that action at this time.
0 commit comments