关于shell脚本的问题,if选择无法执行选择,不知到问题出那了,请专家帮忙?

作者&投稿:蓍左 (若有异议请与网页底部的电邮联系)
你好,关于crontab配置shell脚本不执行的问题能帮忙解答下不?~

先试试直接执行shell脚本,如果ok,那就是因为你没有引入用户的环境变量,在脚本开始加一句 . ~/.profile引入用户环境变量即可。
如果你这个用户直接执行shell都不成功,就是shell本身的问题,和crontab没关系。

那是因为shell是异步运行的,如果运行后立即用if去判断生成的文件在不在,这时候shell仍然在运行中的,所以文件实际上是不存在的,即使差0.00001毫秒,不在的它就是不在,你说在那是因为你是过了几秒钟才去看的,当然在啦。如果连续运行两次,道理还是一样,第二次运行的时候它实际上判断的是第一次运行时生成的文件,所以它会判断存在。
你应该在shell运行后延时1秒以上(根据实际情况而定)再用IF去判断。

count=$# # 获取脚本参数个数
cmd=echo # 初始化 cmd 变量,赋值为 逗echo地
while [ $count -gt 0] # 如果 count 大于0,执行下面的循环
do
cmd="$cmd \$$count" # 给cmd重新赋值,变为 逗echo ${count的值}地
count='expr $count-1' # count减1
done # 之后回到上面的 while 判断
eval $cmd # 执行cmd命令。

这个脚本的功能就是反序打印脚本参数值。
假设这个脚本叫做 script.sh,那么执行 script.sh 1 2 3
结果为: 3 2 1


LINUX快速入门第八章:Shell基础
与一般命令相比,Shell 除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,Shell 是解释性的,组合功能很强,与操作系统有密切的关系,可以在 Shell 脚本中直接使用系统命令。大多数 Linux 系统的启动相关文件(一般在 \/etc\/rc.d 目录下)都...

如何在windows下使用linux的shell脚本
一、windows10用户可以通过windows上的linux子系统来运行linux上的脚本文件。1、首先运行cmd,在cmd命令提示符执行bash命令。2、然后找到要执行的脚本文件执行即可。下图执行了一个t.sh的脚本文件。二、对于windows10之前的版本,可以借助于vmware、virtualpc等虚拟机来安装linux虚拟机,从而实现linux脚本的执行...

如何用xshell编写脚本
1、在编写shell脚本的时候一般会先查询服务器可以使用哪种脚本,并且查看服务器使用的默认脚本方式是哪一种。2、进入shell的方式也是linux系统中经常使用的终端工具,也可以是外部链接软件,这两种方式都是可以的。3、进入终端后可以看到命令行前的提示符为$符号,这代表登录的是普通用户在创建shell脚本,...

如何用SHELL命令运行一个文件
如果存在于PATH变量所指明的路径中,shell会自动寻找相应的可执行文件,用户只需要输入可执行文件名或者脚本名即可执行。3、如果可执行文件或者Shell脚本的存放位置不在PATH变量所指明的路径中,则需要通过".”来执行,比如下面的C语言写的hello world程序,需要输入.\/t才可以被shell运行。

Linux执行过程结果输出到文件linux执行过程
bashmyshell.sh 2、直接执行脚本:不过首先的加上可执行权限(也许要root权限,4情况而定),执行:Linux可执行文件执行流程?由于操作系统不同,linux是不能运行window下的可执行文件的,必须借助于wine;官方网站下载wine软件;同时按下ctrl键、alt键、T键,打开CMD界面;输入sudoapt-getinstallwine指令...

python和shell有什么区别?
3、Python更加强大,shell是一种命令语言,同时也可以看成是一个命令解释器,用于接收诸如awk、sed的命令调用等完成相关的功能。而Python则是一种编程语言,Python提供给程序员更大的自由度和灵活性,以完成shell所不能完成或者难于完成的编码任务,如实现面向对象的模块化设计、操作服务器数据库等。4、...

linux里awk是做什么的,请详细说明
2、shell脚本方式 将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一遍通过键入脚本名称来调用。相当于shell脚本首行的:#!\/bin\/sh 可以换成:#!\/bin\/awk 3、将所有的awk命令插入一个单独文件,然后调用:awk-f awk-script-file input-file(s)其中,-f选项加载...

如何运行linux shell程序
编写好的shell脚本(如:test),可以采取两种方式进行运行:\\x0d\\x0a一、 $ sh test\\x0d\\x0a一般不采用这种调用方式,尤其不采用“sh<test”的调用方式,因为这种方式将禁止shell读取标准输入。\\x0d\\x0a也可以采用 $ ksh test\\x0d\\x0a这种方式要求shell具有“可读”的访问权限。\\x0d\\x0...

sh文件在linux下如何运行
在Linux中,.sh文件是一种脚本文件的命名约定,表示它是一个Shell脚本文件。Shell脚本是一种由命令和控制结构组成的文本文件,用于执行一系列的命令和操作。Shell是Linux和其他类Unix操作系统中的命令行解释器,用于与操作系统交互和执行命令。Shell脚本是用 Shell语言编写的脚本文件,可以包含一系列的 Shell ...

什么是shell命令?windows系统也有shell命令吗?
PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理框架,由.NET Framework和.NET Core是构建的命令行界面壳层相关脚本语言组成,最初仅Windows组件,后于2016年8月18日开源并跨平台支持。[3]在PowerShell中,管理任务通常由cmdlets(发音为command-lets)执行,这是...

鹤峰县18343755964: 关于shell脚本的问题,if选择无法执行选择,不知到问题出那了,请专家帮忙? -
董狗盆炎: count=$# # 获取脚本参数个数 cmd=echo # 初始化 cmd 变量,赋值为 逗echo地 while [ $count -gt 0] # 如果 count 大于0,执行下面的循环 do cmd="$cmd \$$count" # 给cmd重新赋值,变为 逗echo ${count的值}地 count='expr $count-1' # count减1 done # 之后回到上面的 while 判断 eval $cmd # 执行cmd命令.这个脚本的功能就是反序打印脚本参数值.假设这个脚本叫做 script.sh,那么执行 script.sh 1 2 3 结果为: 3 2 1

鹤峰县18343755964: shell脚本, if语句必须要有else吗 -
董狗盆炎: 不必须,可以直接 if 【条件】【要做的内容】 fi; 这样就可以了.也可以用else if 【条件1】【要做的内容1】 else if 【条件2】 【要做的内容2】 fi;

鹤峰县18343755964: shell脚本if循环问题 -
董狗盆炎: 在你上个问题中回答过你了,用数组存值#!/bin/bash arr=(10 11 30) sum=0 for a in ${arr[*]} do ouput_s[$sum]=$a sum=$((sum+1)) done echo "${ouput_s[@]}" echo "$sum"

鹤峰县18343755964: 有懂shell脚本的朋友吗?帮忙看下这个if判断是什么意思 -
董狗盆炎: 不是的,你执行过命令就会发现,如果你单单grep一个进程,如果进程还在,她至少是2条记录,因为grep本身还有一条进程信息 所以你的脚本是发现进程没有了就执行php启动它

鹤峰县18343755964: shell脚本 if判断条件问题 -
董狗盆炎: 你既然已经知道这个文件叫什么就没有意义了....理论上应该用find命令或者你知道这个目录在系统中的什么位置.比如ls | grep aaaa=`echo $?`b=`ls | grep aaa`if [ $a -eq 0 ]thentar zc...

鹤峰县18343755964: linux中的shell脚本如何实现 if(条件) { if() {} else{} } else { if(){} else{} } 这种功能?? -
董狗盆炎: if 条件;then if 条件;then 代码 else 代码 fi elseif 条件;then 代码 else 代码 fi fi

鹤峰县18343755964: 在shell中如何写一个脚本用if语句来表示 -
董狗盆炎: a=10 if [ $a -gt 8 ];then ((a+=2)) else ((a++)) fi echo $a

鹤峰县18343755964: 如何使用shell脚本中的if语句检查条件 -
董狗盆炎: [root@localhost ~]# cat c a=1 if [ $a -eq 1 ];thenecho a 等于1 elseecho a 不等于1 fi [root@localhost ~]# sh c a 等于1

鹤峰县18343755964: 如何在LINUX SHELL 脚本中 用IF语句表达 -
董狗盆炎: if [ -d /home/c ];then do sth else do sth fi

鹤峰县18343755964: shell脚本的if -
董狗盆炎: _day=`echo `cal $_month $_year`|awk '{print $NF}'` 这一句嵌套`符号有问题.不信你把这句注释掉看看是不是就没问题了.两两匹配的原则是就近匹配,即这句会拆分为下面三段:`echo ` cal $_month $_year `|awk '{print $NF}'` 这显然不是...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网