[备忘] - 关于shell中使用pwd来取目录的用法
2013-11-21 11:12
253 查看
这个问题在我一次写脚本的时候发现的,手动执行脚本OK,但是放在cron中就不行(通过把计划任务的log重定向出来发现问题的)。主要有下面2个问题,记下来备忘:
1. 关于命令未发现
crontab运行的时候,提示找不到mysql的命令,后来在脚本中加入
输出只有 /bin:/sbin
解决的方法:在脚本中,导入环境变量
2. 关于想使用`pwd`取脚本的所在目录
在脚本中使用
_work=`pwd`
_work 得到的是你当前执行脚本的位置;比如说我的脚本放置在/root/test.sh 和 /root/py/test.sh
脚本的内容如下
#!/bin/bash
_work=`pwd`
echo $_work
实际上取的是你当前所在的位置,而不是脚本存放位置的目录
[root@localhost ~]# ll /root/test.sh
-rwxr-xr-x. 1 root root 50 Nov 21 10:33 /root/test.sh
[root@localhost ~]# ll /root/py/test.sh
-rwxr-xr-x. 1 root root 50 Nov 21 10:17 /root/py/test.sh
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# /root/test.sh
/tmp
[root@localhost tmp]# /root/py/test.sh
/tmp
PS: 那在不同的位置执行这个脚本,得到的并不是我们想要的_work=/root/scripts
# 取代的方法
1. 关于命令未发现
crontab运行的时候,提示找不到mysql的命令,后来在脚本中加入
#!/bin/bash set -x echo $PATH
输出只有 /bin:/sbin
解决的方法:在脚本中,导入环境变量
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2. 关于想使用`pwd`取脚本的所在目录
在脚本中使用
_work=`pwd`
_work 得到的是你当前执行脚本的位置;比如说我的脚本放置在/root/test.sh 和 /root/py/test.sh
脚本的内容如下
#!/bin/bash
_work=`pwd`
echo $_work
实际上取的是你当前所在的位置,而不是脚本存放位置的目录
[root@localhost ~]# ll /root/test.sh
-rwxr-xr-x. 1 root root 50 Nov 21 10:33 /root/test.sh
[root@localhost ~]# ll /root/py/test.sh
-rwxr-xr-x. 1 root root 50 Nov 21 10:17 /root/py/test.sh
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# /root/test.sh
/tmp
[root@localhost tmp]# /root/py/test.sh
/tmp
PS: 那在不同的位置执行这个脚本,得到的并不是我们想要的_work=/root/scripts
# 取代的方法
#!/bin/bash _work=`dirname $0` echo $_work
相关文章推荐
- Linux文件类型和目录结构+Shell的使用
- shell脚本使用ssh命令连接主机,自动创建目录,分发程序,执行命令
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- Android Studio—— 关于在Android Studio中使用Assets目录下的资源的问题
- 关于set的自定义比较函数的使用及结构体的上下二分用法
- 关于Scanner的useDelimiter使用其它字符做为分隔符的详细用法及特别之处
- 关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性。
- 关于“在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序”的错误
- iis8.0配置 使用备忘 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
- Shell关于Wget命令的使用技巧
- shell基本命令使用--文件和目录操作
- 使用shell脚本删除当前目录下.c文件对应的可执行文件
- Shell使用的高级技巧(pwd)
- 20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断
- Shell基础学习:关于Wget命令的使用技巧[zt]
- Linux下使用Shell脚本快速创建项目目录模板
- C#关于params的用法(使用数量可变的参数)
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- 关于Shell.Application的使用
- iis8.0配置 使用备忘 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容