shell脚本

Linux下shell编程

匿名 (未验证) 提交于 2019-12-02 21:56:30
什么是shell shell是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入需要执行的命令 使用<和>对输入输出进行重定向 使用|在同时执行的程序间实现数据的管道传递 使用$获取子进程的输出 /bin/bash --version  // 查看bash的版本信息 管道和重定向 重定向输出 ls -l > isoutput.txt #把ls命令的输出保存到文件isoutput.txt中,文件不存在则创建,存在则覆盖 cat isoutput.txt 文件描述符 0代表程序的标准输入 1表示标准输出 2表示标准错误输出 追加重定向 >> 将输出追加到指定文件的尾部 (base) asgter@asgter-TM1613:~/Linux/C/funclib$ ps >> isoutput.txt (base) asgter@asgter-TM1613:~/Linux/C/funclib$ tail isoutput.txt -rw-rw-r-- 1 asgter asgter 1528 8月 25 00:59 fred.o -rw-rw-r-- 1 asgter asgter 0 8月 25 01:57 isoutput.txt -rw-rw-r-- 1 asgter asgter 3266 8月 25 01:11 libfoo.a -rw-rw-r-- 1

Windows下怎么执行shell脚本

匿名 (未验证) 提交于 2019-12-02 21:56:30
1、在windows下想要执行shell脚本,需要使用到"Git Bash",所以我们需要先安装Git。 2、查看Git环境变量是否配置,没有配置需要配置(我这里安装Git时自动配置了) 3、随意目录,打开"Git Bash"窗口,创建一个shell脚本文件。 如:touch test.sh 4、创建成功后输入内容。 如:echo "hello world" 5、运行脚本,有三种运行方式: (1)./test.sh (2)sh test.sh (3)/bin/sh test.sh 文章来源: Windows下怎么执行shell脚本

用shell显示斐波那契数列前n项 Linux Ubuntu 18.04.2

匿名 (未验证) 提交于 2019-12-02 21:56:30
版权声明:作者:undefinedUser_1 来源:CSDN 本文为博主原创文章,转载请附上博文链接 https://blog.csdn.net/undefinedUser_1/article/details/90304577 文章目录 创建shell脚本 shell代码 运行shell脚本 总结 核心 代码: c = ${a} a = ${b} b = $(( ${c} + ${b} )) a=${b} 这时a就变成了a的下一位的值, b=$((${c}+${b})) 这时b就成了b的下一位的值,而 c=${a} 是为了保留a在变成下一位之前的值,方便b变成下一位的值时进行运算(因为a已经变成a的下一位了,所以不能直接+a。而如果直接 b=$((${a}+${b})) ,那么a下一位的值就改变了),然后把三个运算放在循环里就可以无限地算下去了。 创建shell脚本 mkdir mybin ),这样可以方便管理写过的shell脚本。进入该目录( cd mybin ),下面这条指令可以创建并进入mybin mkdir mybin; cd mybin Fibonacci.sh ),我这里用的时vim文本编辑器,也可以用vi来编辑,不过vim比vi好用,建议用vim。 Fibonacci是我这个shell脚本的文件名,读者可以自行命名更改。 vim Fibonacci.sh

shell脚本一键安装nginx

匿名 (未验证) 提交于 2019-12-02 21:53:52
依赖包安装包放在一起, 直接执行这个脚本就行。 #!/bin/bash #------------------------------------------------------------------------------------------------------------------# #------------------------------------------------------------------------------------------------------------------# #| chenglee public nginx |# #| version: nginx-1.9.10 |# #| version: openssl-1.1.0f |# #| version: pcre-8.40 |# #| version: zlib-1.2.11 |# #| 2018.12.04 |# #------------------------------------------------------------------------------------------------------------------# #| Some people die at the age of 25 and don't bury

Linux编程 24 shell编程(结构化 if [ condition ] 数值比较,字符串比较)

匿名 (未验证) 提交于 2019-12-02 21:53:52
一.概述   接着上篇讲的结构化命令 ,最后讲到了 test命令的另一种写法 if [ condition ],它的语法格式如下: --格式如下: if [ condition ] then commands fi   第一个方括号之后和第二个方括号之前必须加上一个空格,否则就会报错。 test命令可以判断三类条件: (1)数值比较 (2)字符串比较 (3)文件比较。 比较 描述 例如 n1 -gq n2 N1 ==N2 n1 -ge n2 检查n1是否大于或等于n2 N1 >=N2 n1 -gt n2 检查n1是否大于n2 N1 < N2 n1 -le n2 检查n1是否小于或等于n2 N1 <=N2 n1 -lt n2 检查n1是否小于n2 N1 <N2 n1 -ne n2 检查n1是否不等于n2 N1 !=N2     下面测试脚本中,第一个条件使用 -gt, value2。 第二个条件使用 -eq 测试 value1 是否与 value2相等。                 但涉及到浮点数时,就会出错, bash shell 只能处理整数,如下所示:                对于浮点数处理,在前面章节中讲过使用bc 命令,下面脚本中先用bc来判断,如果条件成立则返回1, 条件不成立返回0, 下面的var1变量返回为1,输出了echo语句信息。           

翻译:man getopt(1)中文手册

匿名 (未验证) 提交于 2019-12-02 21:53:52
NAME getopt - 解析命令行选项(加强版) SYNOPSIS getopt optstring parameters getopt [options] [--] optstring parameters getopt [options] -o|--options optstring [options] [--] parameters (译注: 后面的译文中将分别称呼这3种语法格式为语法1、语法2、语法3 请区分option、parameter、argument、option argument、non-option parameter。如不清楚,请参考: https://www.cnblogs.com/f-ck-need-u/p/9758075.html ) DESCRIPTION getopt用于拆分(解析)命令行中的选项,以便能被shell程`如shell脚本)轻松解析,也用来检查选项是否合理。该命令使用的是GNU getopt(3)程序实现的。 getopt的参数分为两部分:用于修改getopt解析模式的选项(即语法中的options和-o|--options optstring)和待解析的参数(即语法中的parameters部分)。第二部分将从第一个非选项参数开始,或者从"--"之后的第一项内容开始。如果在第一部分中没有给定"-o|--options"

Shell脚本常用模板

匿名 (未验证) 提交于 2019-12-02 21:53:52
  作为一个运维人员编写Shell脚本是很平常的,一个格式好的脚本不仅赏心悦目,后期自己和别人也易于维护。   下面的脚本就是我自己的shell编写格式,如下: 1 [root@mini05 20180930-2]# cat template.sh 2 #!/bin/sh 3 ################ Version Info ################## 4 # Create Date: 2018-09-29 5 # Author: Zhang 6 # Mail: zhang@xxxx.com 7 # Version: 1.0 8 # Attention: shell脚本模板 9 ################################################ 10 11 # 加载环境变量 12 # 如果脚本放到crontab中执行,会缺少环境变量,所以需要添加以下3行 13 . /etc/profile 14 . ~/.bash_profile 15 . /etc/bashrc 16 17 # 脚本所在目录即脚本名称 18 script_dir=$( cd "$( dirname "$0" )" && pwd ) 19 script_name=$(basename ${0}) 20 # 日志目录 21 log_dir="${script_dir}

Shell按行读取文件的3种方法

匿名 (未验证) 提交于 2019-12-02 21:53:52
  Shell按行读取文件的方法有很多,常见的三种方法如下: 要读取的文件: 1 [root@mini05 20180930-2]# cat file.info 2 111 3 222 4 333 444 5 555 666 写法一: 1 [root@mini05 20180930-2]# cat read1.sh 2 #!/bin/bash 3 ################ Version Info ################## 4 # Create Date: 2018-09-29 5 # Author: zhang 6 # Mail: zhang@xxx.com 7 # Version: 1.0 8 # Attention: 按行读取文件 9 ################################################ 10 11 # 加载环境变量 12 . /etc/profile 13 . ~/.bash_profile 14 . /etc/bashrc 15 16 # 脚本所在目录及脚本名称 17 script_dir=$( cd "$( dirname "$0" )" && pwd ) 18 script_name=$(basename ${0}) 19 20 exec < ${script_dir}/file.info 21

java执行shell脚本并输出执行情况

匿名 (未验证) 提交于 2019-12-02 21:53:52
1.脚本test.sh,置于/Users/hdwang目录下 #!/bin/sh cd /Users/hdwang echo ls:`ls` for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); sleep 1s done echo jps:`jps -l` 2.java执行test.sh public class ExecShell { public static void main(String[] args) { try { Process pro = Runtime.getRuntime().exec("/Users/hdwang/test.sh"); InputStream in = pro.getInputStream(); BufferedReader read = new BufferedReader(new InputStreamReader(in)); String line = null; while((line = read.readLine())!=null){ System.out.println(line); } pro.waitFor(); } catch (Exception e) { e.printStackTrace(); } } } 3.执行结果 ls:App Applications

shell if判断语句

我怕爱的太早我们不能终老 提交于 2019-12-02 21:15:09
条件判断if 本章课程大纲 - 1.什么是if - 2.为什么要使用if - 3.if基础语法 - 单条件 - 双条件 - 多条件 - 4.基于文件进行判断 - 5.基于整数进行判断 重要! - 6.基于字符进行判断 - 7.基于正则进行判断 - 8.基于逻辑或 && || -a -o -------------------------------------------------------------------- if 仅仅只是用来判断的, 基于条件来进行判断 整数 字符 正则 .... 需求1:根据输入一个用户名称, read $1 <--test 1.判断输入的用户是否存在当前系统, 2.如不在再次判断用户是否在/home下拥有家目录 3.如果都没有则提示不存在。 if grep $1 /etc/passwd &>/dev/null;then echo "$1 用户存在系统中...." elif ls -ld /home/$1 &>/dev/null;then echo "$1 用户不存在系统中,但拥有家目录" else echo "$1 用户不存在系统,也没有家目录" fi ---------------------------------------------- grep_user=$(grep $1 /etc/passwd &>/dev/null) grep