shell脚本

shell脚本编程之条件判断

折月煮酒 提交于 2019-12-06 13:01:58
条件测试类型: 整数测试 字符测试 文件测试 条件测试的表达式的三种方法: 1、[ expression ] 2、[[ expression ]] 3、test expression 整数比较: -eq:测试两个整数是否相等;相等为真,不等为假 -ne:测试两个整数是否不等;不等为真,相等为假 -gt:测试一个数是否大于另一个数;大于为真,否则为假 -lt:测试一个数是否小于另一个数;小于为真,否则为假 -ge:大于或等于 -le:小于或等于 命令间的逻辑关系: !:表示非(取反) 逻辑与:&& 逻辑或:|| CMD1 && CMD2 Example:id aaa && echo "hello aaa" 如果&&前的执行结果是假,总的结果就是假,没必要执行&&后的操作 如果CMD1成功了(真),就可执行CMD2 如果CMD1失败了(假),就不执行CMD2 如果aaa用户存在,则打印hello aaa;如果用户aaa不存在,则不进行打印 CMD1 || CMD2 Example:id aaa || useradd aaa 如果||前的执行结果是真,总的结果就是真,没必要执行||后的操作CMD2 如果CMD1成功了(真),就不执行CMD2 如果CMD1失败了(假),就可执行CMD2 如果用户aaa存在,就不执行创建aaa用户的命令;如果aaa用户不存在,则创建该用户 EXAMPLE:

shell笔记-local、export用法

喜你入骨 提交于 2019-12-06 12:54:47
shell笔记-local、export用法 2014-08-10 16:27:26 分类: LINUX local一般用于局部变量声明,多在在函数内部使用。 1. Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。 2. Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。 3. 如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量。 ----------------------------------------------------------------------------------------------- export:将自定义变量设定为系统环境变量(仅限于该次登陆操作,当前shell中有效) 语  法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。 参  数: -f  代表[变量名称]中为函数名称。   -n  删除指定的变量。变量实际上并未删除

前端linux基础

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 10:22:36
1. Linux安装 因为图太多了,转载一篇从虚拟机vmware配置到centos7详细安装教程 https://www.cnblogs.com/wcwen1990/p/7630545.html 2.linux常用命令 2.1 常见目录 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /usr 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。 /usr/x11r6 存放x window的目录 /usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 /opt

[Python]操作shell脚本报错Permission denied

社会主义新天地 提交于 2019-12-06 10:07:00
问题: In [28]: os.system('./test_shell_no_para.sh') sh: 1: ./test_shell_no_para.sh: Permission denied Out[28]: 32256 解决办法: 遇到该问题首先想到应该是没有执行权限。 给bash脚本添加执行权限 chmod +x xx.sh命令 重新提交spark任务,如若还有该问题,则可能该脚本还需要可读或者可写 则设置该脚本所在的目录src权限, chmod 777 -R src 这样问题就被解决了 来源: https://www.cnblogs.com/kaerxifa/p/11976019.html

Linux基础操作及概念

落花浮王杯 提交于 2019-12-06 08:38:33
Linux基础操作及概念 终端的概念 通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)。 比如:terminator 安装分屏终端:sudo apt-get install terminator 快捷键:ctrl+alt+t 打开终端 Shell 1,通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而是这个 Shell(壳)。有壳就有核,这里的核就是指 UNIX/Linux 内核,Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。 2,UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。当然这一点也有别于 Windows 下的命令行,虽然该命令行也提供了很简单的控制语句。在 Windows 操作系统下

Ubuntu 19.10 安装 美化 优化 conky Docker

守給你的承諾、 提交于 2019-12-06 07:48:04
本文提供了ubuntu19.10版本的安装,美化,优化,开发环境的搭建,各种软件的安装教程 Ubuntu19.10 安装 美化 优化 conky Docker Ubuntu19.10比以前版本的变化 基于 Linux 5.3 kernel 新主题 Yaru GTK 和新壁纸 GNOME 3.34 Ubuntu19.10也将比以前的版本的启动更快 在Intel硬件上,它提供了一种“flicker-free boot”的体验 安装部分: 1 下载镜像文件 获取下载链接: 选择版本 清华开源镜像网站: https://mirrors.tuna.tsinghua.edu.cn/# 也可以去阿里云的: https://opsx.alibaba.com/mirror 2 制作启动盘: 安装etcher(linux or windows)或者rufus(windows) 插入一个没有文件的U盘:选择下载的镜像写入就行了。 需要进bios修改U盘启动项,选择U盘启动关闭secret boot 不然驱动可能打不上wifi不能使用等问题 进去后就是启动安装程序,可以最小安装,与windows并存等等按照推荐的,设置用户名密码等等 这都是基本了,不会的去其他地方找懒得写了。 美化部分 附上我的截图: 1.主题 首先不得不吐槽一下中文字体优化的确实不咋地,所以我就用了英文的桌面。。。。。 1.1

Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义

依然范特西╮ 提交于 2019-12-06 07:36:53
Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义说明 1.1、简要说明 ps: 你在Linux环境下多试下就明白了 $$ Shell本身的PID(ProcessID,即脚本运行的当前 进程ID 号) $! Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID 号) $? 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误) $- 显示shell使用的当前选项,与set命令功能相同 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数,此选项参数可超过9个。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 $@ 跟$*类似,但是可以当作数组用 $# 添加到Shell的参数个数 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 1.2、脚本举例 我们先写一个简单的脚本,执行以后再解释各个变量的意义 # touch variable # vi variable 脚本内容如下: #!/bin/sh echo

回顾了下shell 编程

安稳与你 提交于 2019-12-06 05:25:32
回顾了一些细节 shell 的通配符扩展 * ? [] [^xxxx] {aaa,bbb} 子进程 more `grep -l POSIX *` more $(grep -l POSIX *) shell 变量的一些特性 赋值直接用变量名,获取内容需要加$ salutation=Hello echo $salutation 读取输入 read salutation 关于shell 中的引号 #!/bin/bash myvar="Hi there" echo $myvar echo "$myvar" echo '$myvar' echo \$myvar shell 中的预定义变量 环境变量的概念: 程序执行时,一些变量会根据环境设置中的值来进行初始化 $HOME $PATH $PS1 $PS2 $IFS 输入域分隔符,shell读取输入时分割单词的字符 $0 shell 脚本的名字 $# 传给脚本的参数个数 $$ shell脚本的进程号 $1 $2 第几个参数 $* 所有参数 shell 的条件判断 test 和 [] if test -f fred.c then … fi if [ -f fred.c ] then … fi test 可以使用的三类条件 1 字符串比较 string1 = string2 string1 != string2 -n string 字符串不为空则为真

shell脚本简单例子

和自甴很熟 提交于 2019-12-06 04:22:06
eg: Expect: 1.用环境变量RANDOM随机生成一个100以内的随机数 2.read读取当前输入 3.当前输入对比随机生成的数 4.当两个数相等时跳出苏循环,并计数(比较n次结果才相等) 1 #!/bin/bash 2 i=0 3 num=$(expr $RANDOM % 100) 4 echo $num 5 while true 6 do 7 let i++ 8 read -p "Please input number(1-100):" digit 9 if [ $digit -eq $num ]; then 10 echo $digit 11 echo "一共$i 次!!" 12 break 13 elif [ $digit -lt $num ]; then 14 echo "The number is less!" 15 elif [ $digit -gt $num -o $digit -gt 100 ]; then 16 echo "The number is bigger" 17 #elif [ $digit -gt 100 ]; then 18 # echo "not in the range!! Please reinput." 19 else 20 continue 21 fi 22 done eg: 复习简单实例 , 简单输入n次要取得值

机器取代人类成为现实,Linux shell才可被取代?

大憨熊 提交于 2019-12-06 03:23:20
机器取代人类成为现实,Linux shell才可被取代? 新睿云 新睿云 新睿云-让云服务触手可及 本次笔者用通俗易懂的语言介绍一下Linux shell,由于笔者能力有限,如有有描述不准确的地方还请大家指正。 其实shell是十分有魔力的,笔者猜测真的有一天机器取代人类后,人工智能极度发达shell才会被取代!机器想要做什么直接自己调用自己,目前来说Linux shell还是十分有市场的。 一、Linux shell是什么? shell 就是壳,区别于核。 Linux 的 核 叫 kernel , 壳有很多种,有命令行的: bash 、sh 、csh 、ksh, 有图形化的: KDE、GNOME、CDE、 XFCE ,据说 Linus 那伙人只负责开发 核。 Windows 9X 系列的核是 DOS,图形化的 壳 叫 Windows Explorer ,命令行 壳 叫 command。从 Windows XP 开始,Windows 的 核 叫做 WindowsNT(Windows New Technology),图形化壳叫 Windows Explorer ,命令行 壳 有 command 、cmd.exe ,后面还推出了 Windows PowerShell。由于 Windows NT 技术是针对图形化壳设计出来的核,而 Windows 9X 就是在 DOS 上加了一个壳。所以