linux下如何在shell中执行小数的运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下如何在shell中执行小数的运算相关的知识,希望对你有一定的参考价值。

我想在shell中实现一个这样的循环,但是shell不支持小数的运算,有没有大神知道怎么在shell中实现小数的运算
x=0.02
while ((x<0.06))
do
echo $x
x=$(($x+0.02))
done

你可以用计算工具bc来算,再导回shell
如:

#!/bin/sh
x=0.02
x=`echo "scale=3;$x+0.02" | bc `
echo $x

如果要控制循环,x<0.06显然是不能用的,但你可以用x<6,然后把最终结果用bc除以100呗~
参考技术A 楼主,推荐用awk:
/bin/awk 'BEGINa=0.02;while(a<0.06)a=a+0.02;print a'

linux下如何写个SHELL脚本,每天执行这么几句命令:

1、killall p(杀死p这个进程) 2、然后到/usr/local/encode目录下执行一条特殊的软件服务启动命令例如:service httpd start,但是我的软件的启动命令只能到/usr/local/encode目录下才能执行,请大神看清楚我的问题。
在线等啊!!!

1、登录CentOS7系统,打开终端,输入命令env shell打印出shell进程的环境变量。

2、本地变量只存在当前shell进程。新建一个本地变量MYVAR=myvalue注意等号两边不能有空格。

3、查看本地变量set查看指定本地变量set | grep MYVAR。

4、导出本地变量为环境变量export MYVAR。

5、删除本地变量或环境变量unset MYVAR即可。

参考技术A 每天自动执行肯定是要用一个crontab的
脚本可以这样写:
#!/bin/bash
PRO=ps x|grep p|grep -v grep|awk 'print $1'
kill -9 $PRO
service httpd start
脚本上面即可实现了
如果要每天自动执行,那么需要添加一条crontab
如果你的P进程是apache进程,那么直接start就行,如果不是那么要restart
0 1 * * * /usr/local/encode/apachectl restart
上面提到的只能在/usr/local/encode下执行是说明你的服务直接执行的脚本本回答被提问者采纳

以上是关于linux下如何在shell中执行小数的运算的主要内容,如果未能解决你的问题,请参考以下文章

shell编程中两个非整数变量如何做加减乘除运算

如何在windows下使用linux的shell脚本

如何在Windows下运行linux shell脚本

LINUX下shell脚本如何执行 sql脚本 到DB2数据库?

如何在 Linux unsing QProcess 下执行 shell 命令?

shell中如何实现隔段时间执行下一个命令?