shell脚本

shell脚本实现颜色函数传参

妖精的绣舞 提交于 2020-01-28 05:20:48
1、编写颜色脚本 echo ' #!/bin/bash echo -e "1、\033[30m 黑色字 \033[0m" echo -e "2、\033[31m 红色字 \033[0m" echo -e "3、\033[32m 绿色字 \033[0m" echo -e "4、\033[33m 黄色字 \033[0m" echo -e "5、\033[34m 蓝色字 \033[0m" echo -e "6、\033[35m 紫色字 \033[0m" echo -e "7、\033[36m 天蓝字 \033[0m" echo -e "8、\033[37m 白色字 \033[0m" read -ep "请输入内容:" nei read -ep "请输入颜色:" yan gaojun() { case $1 in 1) echo -e "\033[30m $nei \033[0m" ;; 2) echo -e "\033[31m $nei \033[0m" ;; 3) echo -e "\033[32m $nei \033[0m" ;; 4) echo -e "\033[33m $nei \033[0m" ;; 5) echo -e "\033[34m $nei \033[0m" ;; 6) echo -e "\033[35m $nei \033[0m" ;; 7) echo -e "

Linux Shell常用技巧(五)

ⅰ亾dé卋堺 提交于 2020-01-28 04:53:15
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /Tom/ {Wage = $2 * $3; print Wage}' filename 该命令将从文件中读取,并查找第一个域字段匹配Tom的记录,再将其第二和第三个字段的乘积赋值给自定义的Wage变量,最后通过print命令将该变量打印输出。 /> awk ' {$5 = 1000 * $3 / $2; print}' filename 在上面的命令中,如果$5不存在,awk将计算表达式1000 * $3 / $2的值,并将其赋值给$5。如果第五个域存在,则用表达式覆盖$5原来的值。 我们同样也可以在命令行中定义自定义的变量,用法如下: /> awk -F: -f awkscript month=4 year=2011

在CentOS 7中双击启动shell

坚强是说给别人听的谎言 提交于 2020-01-28 02:30:39
http://www.cocoachina.com/articles/119360 要通过双击其图标来运行脚本,您需要为其创建一个.desktop文件: [Desktop Entry] Name=My script Comment=Test hello world script Exec= / home / user / yourscript . sh Icon= / home / user / youricon . png Terminal=true Type =Application 将上述内容保存为桌面上的扩展名为.desktop的文件.将/home/user/yourscript.sh和/home/user/youricon.gif更改为脚本的路径以及您希望它分别具有的图标,然后您可以通过双击它来启动. 来源: CSDN 作者: YJ-Eden 链接: https://blog.csdn.net/sinat_25079053/article/details/103646373

Shell脚本-文件备份

一曲冷凌霜 提交于 2020-01-27 17:33:01
适用场景:需对脚本里的一些参数做配置,备份指定目录,tar压缩存放,通过scp将备份文件存放在另一台服务器。可自动执行,无执行周期设定。 #!/bin/bash source_dir= '/data/docj/' tar_file= 'attachment' target_dir= '/data/backup/attachment/' tmp_dir= '/data/tmp/' current_time=$ ( date + '%Y-%m-%d_%H%M%S' ) login_user= 'root' login_ip= '192.168.142.154' echo "---- $0 - $current_time -文件备份打包开始----" cd $source_dir tar - zcf $tmp_dir $ { current_time } . tar . gz $tar_file echo "---- $0 - $current_time -文件发送开始----" expect - c " spawn scp $tmp_dir ${current_time}.tar.gz $login_user @ $login_ip : $target_dir expect { \" * assword * \ " { set timeout 600; send \" 123456\r

python调用shell命令

≯℡__Kan透↙ 提交于 2020-01-27 07:28:40
在 python 程序中调用 shell 命令 1. os.system(command) 此函数会启动子进程,在子进程中执行 command ,并返回 command 命令执行完毕后的退出状态,如果 command 有执行内容,会在标准输出显示。这实际上是使用 C 标准库函数 system() 实现的。 缺点:这个函数在执行 command 命令时需要重新打开一个终端,并且无法保存 command 命令的执行结果。 实例: os.system('ls -l *') 2. os.popen(command,mode) 打开一个与 command 进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写 ( 由 mode 决定, mode 默认是 ’r') 。如果 mode 为 ’r' ,可以使用此函数的返回值调用 read() 来获取 command 命令的执行结果。 os.system(cmd) 或 os.popen(cmd) ,前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。 实例: tmp = os.popen('ls -l *').readlines() 3. commands.getstatusoutput(command)   使用 os.popen() 函数执行 command 命令并返回一个元组 (status

学习linux的第七十四天

会有一股神秘感。 提交于 2020-01-27 02:17:38
playbook的条件判断 查看到setup收集到的所有的facter信息: ansible testhost -m setup 编辑条件: [root@KXLZQ ~]# vim /etc/ansible/when.yml hosts: testhost user: root gather_facts: True tasks: - name: use when shell: touch /tmp/when.txt when: ansible_ens33.ipv4.address == “192.168.70.129” 注: when: ansible_ens33是一个数组存储着网卡相关信息,ipv4属于该数组的子元素,但是ipv4也是一个数组,而address则是ipv4数组的子元素。我们需要使用address 来作为判断条件。所以要访问address就需要使用这样的格式: when: ansible_ens33.ipv4.address,address表示的是键,而"192.168.70.129"则是值,when为判断语句相当于if,所以其判断条件为:该键的值为"192.168.70.129"时就执行shell模块里定义的语句。 执行: [root@KXLZQ ~]# ansible-playbook /etc/ansible/when.yml PLAY [testhost]

shell小脚本集合

拥有回忆 提交于 2020-01-26 19:58:33
1.猜数字 #!/bin/bash x=$[RANDOM%10+1] while read -p "please your number1-10:" num;do #echo $num if [ "$num" -eq "$x" ];then echo your gueess right. break elif [ "$num" -lt "$x" ];then echo letter else echo more fi done 2.棋盘 #!/binbash red="\033[41m" blue="\033[44m" cloend="\033[0m" #echo -e "$red $cloend" for j in {1..8};do if [ $[j%2] -eq 1 ];then for i in {1..8};do if [ $[i%2] -eq 1 ];then echo -e "$red $cloend\c" else echo -e "$blue $cloend\c" fi done elif [ $[j%2] -eq 0 ];then for k in {1..8};do if [ $[k%2] -eq 0 ];then echo -e "$red $cloend\c" else echo -e "$blue $cloend\c" fi done fi echo

shell脚本自学之路

China☆狼群 提交于 2020-01-26 18:04:39
阿里云大学教学 https://edu.aliyun.com/course/155/ 运行 chmod +x xx.sh ./xx.sh 基本语法:echo 输出 $赋值 特殊变量: $* 变量的使用 read命令 读入键盘输入 expr 运算 expr 3 + 5要有空格 反斜杠取消 特殊符号含义 反引号的用法: test:变量测试 -n是否为空 >= -ge > -gt <= -le 不等于 -ne 也可以方括号括起来【xx -lt xx】 来源: https://www.cnblogs.com/shijie-huang/p/12234478.html

Linux Shell 函数返回值

那年仲夏 提交于 2020-01-26 17:46:14
Shell函数返回值,常用的两种方式: return , echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。 示例: #!/bin/sh function test() { echo "arg1 = $1" if [ $1 = "1" ] ;then return 1 else return 0 fi } echo echo "test 1" test 1 echo $? # print return result echo echo "test 0" test 0 echo $? # print return result echo echo "test 2" test 2 echo $? # print return result 输出结果为: test 1 arg1 = 1 1 test 0 arg1 = 0 0 test 2 arg1 = 2 0 先定义了一个函数test,根据它输入的参数是否为1来return 1或者return 0。 获取函数的返回值通过调用函数,或者最后执行的值获得。 另外,可以直接用函数的返回值用作if的判断。 注意:return只能用来返回整数值,且和c的区别是返回为正确,其他的值为错误。 3) echo 返回值 其实在shell中,函数的返回值有一个非常安全的返回方式

shell脚本-编程原理

北城以北 提交于 2020-01-26 04:23:47
1、 shell脚本语言介绍 优点:调用os(操作系统)的命令行,来实现所有功能 缺点:没有库调用(区分python) 变量:全局变量、局部变量、本地变量、传参   /etc/shells/ --查看当前系统支持的shell程序   echo $SHELL -- 查看当前会话的shell程序   /etc/passwd -- 制定了用户默认支持的shell程序 shell的执行: 1)bash命令来执行脚本 -n 查看shell脚本的逻辑错误(单词查不出) -x 逐行显示执行的脚本程序(方便排错) 2)授权 chmod +x filename.sh 使用全路径执行脚本,即可./filename.sh 2、变量 环境变量($HOME、$SHELL、) 局部变量 declare命令 -- 定义变量类型 本地变量 local在函数中使用 变量类型: 数值型:int 整型、浮点型(float)、布尔值(true/false) 字符串: 1)普通字符及字符串 2)数组 编程语言的分类: 强类型语言 -- 数值必须被定义,才能进行处理或运算 弱类型语言 -- 编程语言可以自动识别变量类型 【多态--一个数据具有多个属性,而最后使用的属性取决于和他进行运算事物数据】 传参 $? ---上一条命令执行状态(0 正确 1-255错误) $1 $2 .. ${10} --- 命令后面传入脚本的数据