linux定时任务shell脚本开头如下 cd ~ . .bash_profile 定时任务执行后提示找不到.bash_profile啥情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux定时任务shell脚本开头如下 cd ~ . .bash_profile 定时任务执行后提示找不到.bash_profile啥情况相关的知识,希望对你有一定的参考价值。
执行cd~后我输出了路径,在这个路径下有.bash_profile文件的,在这个路径下放置一个sh文件如:
cd ~
./1.sh --这个可以输出结果的
. .bash_profile --提示找不到文件
求高手解答一下
cd ~ --路径是/home/db2inst1
. /home/db2inst1/.bash_profile --输入绝对路径就可以执行
什么原因,第一步cd ~就是已经进入/home/db2inst1了,然后. .bash_profile就不能执行,什么情况
通常就是在用户目录下的。
先去掉 ./1.sh 看看是否能执行,如果这样可以,说明就是 ./1.sh 执行过程中改变了当前路径。追问
去掉执行不成功,./1.sh是执行不成功后我加进去的,就是想试一下是否在当前路径。
另外,你知道. .bash_profile是什么意思吗
第一个点相当于source命令,在当前shell执行脚本,脚本中对环境变量(如当前路径)的改变将在脚本执行结束后被保留,即会影响当前shell,.bash_profile是用户profile文件。
如果不加点号即不用source命令执行,脚本执行结束后对当前shell无影响。
建议不要用cd,直接这样执行吧:
. ~/.bash_profile追问多谢高手指点,按照你说的那样果然可以执行。只是不理解先cd ~,再执行为什么不行。
追答用 env | grep PATH 看下你的环境变量中的PATH设定。
若不加路径执行脚本,shell默认会搜索PATH中的路径。若PATH中没有包含/home/db2inst1 这个路径,则找不到脚本。
所以,任何时候,在执行脚本时带上路径都是一个好习惯。
.bash_profile是个文件啊 前面加个点再加空格,然后加.bash_profile,我也不知道是什么意思,是读取这个文件吗
追答不是,读取这个文件的话,应该这样
source .bash_profile
如何设置PowerShell脚本定时执行
参考技术A 不管是Windows还是MacOS还是Linux,凡是定时执行的,一般都是靠计划任务。
以在Windows中运行Powershell脚本为例:
1.
写好你的脚本,比如叫a.ps1
2.
创建
定时任务
,在动作页设置:
运行程序
powershell
,参数
-File X:\..\a.ps1 -ExecutionPolicy ByPas3.
其余项根据你的需求设置好,到设定的时间就可以运行了。
P.S.
不要把运行时间设在过去。
以上是关于linux定时任务shell脚本开头如下 cd ~ . .bash_profile 定时任务执行后提示找不到.bash_profile啥情况的主要内容,如果未能解决你的问题,请参考以下文章