shell函数

Linux里设置环境变量的方法(export PATH)

╄→гoц情女王★ 提交于 2019-12-03 01:45:50
1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH=/home/.....(动态库的目录) 不过这种设置方法只是在当前的session中有效 你可以修改配置文件实现任何session都有效 2.环境变量的设置 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt /au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量: 2.1、直接用export命令: #export PATH=$PATH:/opt/au1200_rm/build_tools/bin 查看是否已经设好,可用命令export查看: 可以看到,环境变量已经设好,PATH里面已经有了我要加的编译器的路径。 2.2、修改profile文件: #vi /etc/profile 在里面加入: export PATH="$PATH:/opt/au1200_rm/build_tools/bin" 让环境变量立即生效需要执行如下命令: #source /etc/profile 2.3. 修改.bashrc文件: # vi

subprocess模块

匿名 (未验证) 提交于 2019-12-03 00:40:02
os与commands模块 subprocess模块 subprocess.Popen类 总结 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell。那么我们如何通过Python来完成这些命令行指令的执行呢?另外,我们应该知道的是命令行指令的执行通常有两个我们比较关注的结果: 命令执行的状态码--表示命令执行是否成功 命令执行的输出结果--命令执行成功后的输出 早期的Python版本中,我们主要是通过os.system()、os.popen().read()等函数来执行命令行指令的,另外还有一个很少使用的commands模块。但是从Python 2.4开始官方文档中建议使用的是subprocess模块,所以os模块和commands模块的相关函数在这里只提供一个简单的使用示例,我们重要要介绍的是subprocess模块。 Python中提供了以下几个函数来帮助我们完成命令行指令的执行: 函数名 描述 os.system(command) 返回命令执行状态码,而将命令执行结果输出到屏幕 os.popen(command).read() 可以获取命令执行结果,但是无法获取命令执行状态码 commands.getstatusoutput(command) 返回一个元组(命令执行状态码, 命令执行结果) 说明: os.popen(command

MongoDB shell 介绍

匿名 (未验证) 提交于 2019-12-03 00:40:02
MongoDB shell 介绍 MongoDB自带javascript shell, 可在shell中使用命令行与MongoDB实列交互。shell可以执行管理操作,检查运行实列等等操作。 一:如何运行shell? 在命令行中,运行mongo, 就可以启动shell,如下命令: 注意:启动时,shell将自动连接MongoDB服务器,必须确保mongod已经启动。 shell是一个功能完备的javascript解析器,可以运行任意的javascript程序。我们请看如下几个简单的demo。 它还可以定义和调用Javascript函数,如下代码命令: 二:MongoDB客户端 运行命令 mongo后,shell会连到 MongoDB服务器的test数据库,并将数据库的链接赋值给全局变量db。 注意:db这个变量是通过shell访问MongoDB的主要入口点。 如果现在我们想要查看db当前指向那个数据库,可以使用db命令,如下所示: shell还包含一些非Javascript语法的扩展,比如选择数据库操作这些~ 如下代码: 如果现在查看db变量,会发现其正指向foobar数据库,如下命令: 如上,通过db变量,可以访问其中的集合,比如,通过db.foobar 可返回当前数据库的foobar集合。这意味着,几乎所有的数据库操作都可以通过shell完成。 三:shell中创建,读取,更新

shell 流水账

匿名 (未验证) 提交于 2019-12-03 00:39:02
在shell脚本运行时,会先查找系统环境变量ENV,该变量指定了环境文件(加载顺序通常是/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc) 设置全局变量: declare -x 变量名 export 变量名 常见全局变量配置文件: /etc/profile、/etc/bashrc、/etc/profile.d/目录下 /etc/motd 登录提示 当位置参数大于9时,需要使用{}括起来 ,${10} dirname 获取路径 basename 获取文件名 for i ;do echo $i;done #相当于for i in "$@" $!获取上一次执行脚本的PID echo ${#parameter} 打印变量值的长度 ${var:2:2} 从第二个字符开始截取,截取两个字符。 ${var/oldboy/oldgirl} 替换第一个匹配的字符串 ${var//oldboy/oldgirl} 替换匹配的所有字符串 ${parameter:=word} 如果parameter变量值为空或未赋值,就设置这个变量值为word,并返回其值 ${parameter:-word} 如果parameter变量值为空或未赋值,则会返回word字符串替代变量的值 ${parameter:-word} 如果parameter变量值为空或未赋值

Shell 脚本实例

匿名 (未验证) 提交于 2019-12-03 00:38:01
执行db.dump.sh westos(数据库密码)脚本执行后会备份数据库中的所有库到/mnt/mysqldump目录中备份文件名称为“库名称 .sql”当此文件存在时报错并询问动作输入“S”跳过备份,当输入“B”时备份“库名称.sq””文件为“库名称backup.sql” ,当输入“O”时,覆盖源文件 脚本内容如下: #!/bin/bash Action() # 定义函数,进行操作指南 { read -p "Please input action like:[S]kip [B]ackup [O]verwrite " action action=` echo $action | tr 'A-Z' 'a-z' ` } Action $1 Database=`mysql -uroot -p $1 -EN -e "show databases;" |grep -E "^\*|schema$" -v ` mkdir -p /mnt/sqldump/ [ -e " $database_name " .sql ]&& Case $1 Case() # 定义函数,匹配操作 { case $action in s) # s 时不做任何操作 ;; b) # b 时,将文件备份为数据库名称bachup.sql for database_name in $Database do mysqldump

Shell 学习随笔

匿名 (未验证) 提交于 2019-12-03 00:30:01
1、Shell 是一个用C语言编写的程序,它是用户使用 LInux 的桥梁。是一种命令语言也是一种程序设计语言。 2、创建一个 shell 脚本可以使用 vi/vim 新建一个文件 test.sh ,扩展名为 sh(sh 代表shell) #!/bin/bash echo “hello world !" 3、运行 Shell 脚本的方法 4、定义变量 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 局部变量 环境变量 shell变量 = "runoob is a great company" `expr index "$string" is` # 输出 8 # 、 ## # # 、 %% % % 9、Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为: $n 。 n 特殊字符用来处理参数: $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。 $- 显示Shell使用的当前选项,与 set命令 功能相同。 $? 显示最后命令的退出状态

shell面试题

匿名 (未验证) 提交于 2019-12-03 00:26:01
<configuration> </artifactItem> <artifactItem> </artifactItem> <!-- </artifactItem> <groupId>some groupId</groupId> < </configuration> #!/bin/bash grep -n 'artifactItem>' 2.txt |awk '{print $1}' |sed 's/://' > /tmp/line_number.txt n=`wc -l /tmp/line_number.txt|awk '{print $1}'` get_value(){ x=`sed -n "$i"p /tmp/value.txt|awk '{print $1}'` } n2=$[$n/2] for j in `seq 1 $n2` do done 10.111.11.1,root,xyxyxy 10.111.11.1,root,xzxzxz 10.111.11.1,root,123456 10.111.11.1,root,xxxxxx #!/usr/bin/expect set passwd [lindex $argv 0] set host [lindex $argv 1] spawn ssh root@$host expect { "yes/no" { send

[Shell习题] 常见题系列二

匿名 (未验证) 提交于 2019-12-03 00:19:01
$ cat test2.sh #!/bin/bash function f (){ echo "hello world" } f #函数调用 f #函数连续调用两次 # 输出: hello world hello world $ a= "hello" $ b= "world" $ echo $a $b helloworld $ echo $a $b # $a $b中间有空格 hello world $ c= $a $b $ echo $c helloworld $ d= $a $b #不能有空格 - sh: world: command not found a= 5 b= 6 $ expr $a + $b 11 $ echo $( (a + b)) 11 $ echo $[ a + b] 11 echo $( ( $a + $b )) # echo $( (a+b)),双小括号里面可以不用加 $符 号 echo $[ $a + $b ] # echo $[ a + b],可以不加 $符 号,可以没有空格 $ expr $a + $b 5 + 6 #!/bin/bash if [ -f "/home/qiuxianyin/mytest/test.sh" ] #紧挨着 [ ] 左右有空格,否则报错 then echo "file exists" fi if 参数 [ -f file ]

shell编程:向函数中传递参数

匿名 (未验证) 提交于 2019-12-03 00:15:02
cal.sh sh cal.sh 20 + 10 实现这样传参的函数(shell不是一个严谨的编程语言,参数这种是不用定义的,函数中直接引用,shell执行中直接写) #!/bin/bash # cal() { case $2 in +) echo "`expr $1 + $3`" ;; -) echo "`expr $1 - $3`" ;; \*) echo "`expr $1 \* $3`" ;; /) echo "`expr $1 / $3`" ;; esac } 来源:博客园 作者: 豆浆D 链接:https://www.cnblogs.com/soymilk2019/p/11730021.html

Shell编程之case多分支语句、循环语句(for、while等)、Shell函数、Shell数组

匿名 (未验证) 提交于 2019-12-03 00:14:01
case多分支语句 case语句的结构: 针对变量的不同取值,分别执行不同的命令列 case 变量值 in 模式 1 ) 命令序列 1 ;; 模式 2 ) 命令序列 2 ;; ..... *) 默认命令序列 esac 示例 : 字符类型识别: 提示用户输入一个字符; 判断出该字符是字母、数字或者其他字符。 脚本如下: [ root@localhost opt ]# vim test01 . sh #!/bin/bash read - p "请输入一个字符:" key case $key in [ a - z ]|[ A - Z ]) echo "你输入的是字母" ;; [ 0 - 9 ]) echo "你输入的是数字" ;; *) echo "你输入的是特殊符号" esac 执行结果如下: [ root@localhost opt ]# chmod + x test01 . sh [ root@localhost opt ]# ./ test01 . sh 请输入一个字符: 3 你输入的是数字 [ root@localhost opt ]# ./ test01 . sh 请输入一个字符: d 你输入的是字母 [ root@localhost opt ]# ./ test01 . sh 请输入一个字符:# 你输入的是特殊符号 [ root@localhost opt ]# 循环语句