当前位置:首页 » 编程软件 » shell脚本优化

shell脚本优化

发布时间: 2022-07-12 21:13:26

❶ shell脚本sed替换命令的问题,求高手回答一下 谢谢啊

1)cata.config|grep"^name"累赘,直接写为grep"^name"a.config

2)>>/dev/null,不需要>>,直接>就可以,即使输出可能是多行内容,也可以作为一个整体。

3)=前后有空格的话,将"="(=前后加上了空格)设为字段分隔符就可以了。

awk -F' = ' "{print $2}"

当然,最好的做法是用集合[= ],这样=和空格都可以作为分隔符,而且无论=左右有几个空格都可以处理。awk -F'[= ]' "{print $NF}" ,awk内置变量NF表示字段数,$NF就可以取出最后一个字段。

4)sed"s/"${name_test}"/"cat"/"a.config可以再简单些:sed"s/${name_test}/cat/"a.config

不过,你要做替换,直接awk就可以完成了,何必awk加sed呢;此外,grep的结果保存下来,就不用做两次了。

output=`grep"^name"a.config`
[-n"$output"]&&echo"$output"|awk'{$NF="cat";print}'

分隔符都不用设置,直接用默认的就可以。

❷ shell 判断目录,如何优化这个脚本

判断文件大小是不是0kb行不行?使用-s
if [ -s filenpath]; then
文件内容不为空
else
文件内容为空
fi

❸ Shell脚本语言优势怎样

Shell脚本语言的优势在于处理偏操作系统底层的业务,例如:Linux系统内部的很多应用(有的是应用的一部分)都是使用Shell脚本开发的,因为有1000多个Linux系统命令为它做支撑,特别是Linux正则表达式及三剑客grep、sed、awk等命令。
对于一些常见的系统脚本使用Shell开发会更简单、更快速,例如:让软件一键自动化安装、优化,监控报警脚本,软件启动脚本,日志分析脚本等,虽然PHP/Python语言也能够做到这些,但是,考虑到掌握难度、开发效率、开发习惯等因素,它们可能就不如Shell脚本语言流行及有优势了。对于一些常规的业务应用,使用Shell更符合Linux运维简单、易用、高效的三大基本原则。
PHP语言的优势在于小型网站系统的开发;Python语言的优势在于开发较复杂的运维工具、Web界面的管理工具和Web业务的开发(例如:CMDB自动化运维平台、跳板机、批量管理软件SaltStack、云计算OpenStack软件)等。我们在开发一个应用时应根据业务需求,结合不同语言的优势及自身擅长的语言来选择,扬长避短,从而达到高效开发及易于自身维护等目的。

❹ shell命令优化 小白写了以下一段脚本,请问有哪位大神帮忙优化一下吗

#!/bin/bash
file="/sys/class/backlight/intel_backlight/actual_brightness"
actualbrightness=`cat$file`
case$actualbrightnessin
[5432]1)value=$((actualbrightness-10));
echo$value>$file;;
[1234]2)value=$((actualbrightness+10));
echo$value>$file;;
11)echo12>$file;;
52)echo51>$file;;
*)exit0;;
esac

❺ 如何用shell脚本实现下列功能

楼上两个真经典, 受教受教. 我菜鸟冒昧解释解释两位的命令

cat log.txt| gawk -F'#| ' '{print $5}'|sort|uniq -c|gawk '{print $2,$1}'
-F'#| ' 利用#或者空格分隔, 第一次碰到学习了
sort 排序
uniq -c 合并重复, 统计个数

awk -F"[# ]" '{a[$5]=a[$5]"z"}END{for( i in a )print i"\n", length(a[i])}' temp.log
太nb了, 佩服佩服awk用的如此之娴熟
-F"[# ]" 同样用#或者空格分隔, 学习学习
a[$5]=a[$5] awk关联数组, 太经典了, a[$5]用字符串做数组a的下标, 而字符串本身就是IP地址, =a[$5]"z"太nb了, 看了半天才明白, 数字内部保存的只是z, 如果遇到重复的下标只是保存了zz, NB呀高手. 后面结束的时候循环只是打印出来了下标i(IP地址), 而数组的内容实际上是a[i](也就是1个或者多个z), 然后用内置函数length取出来数字内有多少个z就是重复了几次. 高!

厚颜无耻的补充一下排序加上sort就行了
awk -F"[# ]" '{a[$5]=a[$5]"z"}END{for( i in a )print i" ", length(a[i]) | "sort"}' datafile

to 楼上
谦虚谦虚了
看了优化命令
awk -F"#| " '{a[$5]++}END{for(i in a)print i"\n"a[i]}' temp.log 1>aaa.txt
不错, 我又没有想到!!! 直接自增1 不用length统计了直接打印. 太棒了

❻ 刚学shell脚本写了个小 计算器,加减除都可以,乘法不行,哪儿错了

你的问题在:elif [ $fangfa = " \* " ]; 这句并不能判断到“*“乘号;
正确的结果如下:
#!/bin/bash
echo "first number"
read a
echo "fangfa"
read fangfa
echo "second number"
read b
if [ "$fangfa" = "+" ];then
echo $(($a+$b))
elif [ "$fangfa" = "-" ];then
echo $(($a-$b))
elif [ "$fangfa" = "*" ];then
echo $(($a*$b))
elif [ "$fangfa" = "/" ];then
echo $(($a/$b))
fi
===============================================
脚本优化版本:
#!/bin/bash

read -p "input first number: " num1
read -p "input operator: " operator
read -p "input second number: " num2

if [ "$operator" == "+" ];then
echo " num1 + num2 = $(($num1+$num2))"
elif [ "$operator" == "-" ];then
echo "num1 - num2 = $(($num1-$num2))"
elif [ "$operator" == "*" ];then
echo "num1 * num2 = $(($num1*$num2))"
elif [ "$operator" == "/" ];then
echo "num1 / num2 = $(($num1/$num2))"
fi

❼ shell脚本,获取目录的结构,保存到文件

使用递归的shell脚本没有find效率高。find 是为目录搜索而优化过的程序。

#!/bin/bash
DIR="$1"
if [ -z "$2"] ;then
echo "must set 2st argument for output file ." >& 2
exit 1
fi
OUT="$2"
DIR=$(readlink -m "$DIR")
#转换成绝对路径
find "$DIR" -type "d" >"$OUT"
#搜索目录保存到输出文件。

❽ 求大佬教我优化shell脚本

我有几个数据,想让它们跟某一个特定的数值进行差值计算,然后返回绝对值最大的那个。
比如说有
123
456
111
跟100差值计算
返回456
不知道怎么写 希望大佬带

❾ shell脚本优化

能稍微给点 $TABLE 里的文本,还有想达到最终效果的文本样式。
你是先写10行$TABLE.xls 在删10 然后在打印含有|的行重新写进$TABLE.xls
是这意思吗?
你直接-i 参数直接在文本里操作不行吗?

热点内容
androidlayoutview 发布:2025-02-08 15:45:01 浏览:619
大货车有哪些安全应急配置 发布:2025-02-08 15:44:55 浏览:535
安卓手机下黎明杀机为什么会闪退 发布:2025-02-08 15:38:27 浏览:488
定位算法源码 发布:2025-02-08 15:36:43 浏览:542
上游服务器异常什么意思 发布:2025-02-08 15:15:46 浏览:175
如何下载油猴脚本并安装 发布:2025-02-08 15:02:12 浏览:596
硬件哪个配置性价比高 发布:2025-02-08 14:47:07 浏览:146
如何去掉仅限自动配置 发布:2025-02-08 14:37:55 浏览:708
压缩空气有啥 发布:2025-02-08 14:26:01 浏览:704
python输入一个数 发布:2025-02-08 14:26:00 浏览:451