2016/12/15
描述
目的
写一段自动化shell脚本, 获取mysql的安装bin目录, 比如 /dir1/dir2/mysql/bin/
假设:
1. mysql已经跑起来了
2. 不是从apt-get之类的安装的mysql, 而是自己编译安装的
3. 此时mysql这个命令没有被加到 PATH 中, 因此只能使用绝对路径调用它
-
思路
利用 read -p , 由用户输入, (不好, 不自然)
利用 ps -ef , 然后从中截取到我所需要的目录 (倾向于这个, 但是有几个问题没有解决, 见下文 )
其他方法( 也许有更好的方法 ? )
-
问题
. 截取的数据不干净( 见相关代码 )
比如 root 813 1 0 Dec13 ? 00:00:00 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add c 能得到 /usr/bin/abrt-watch-log 然后 dirname 得到 /usr/bin/
总感觉这个思路很脆弱( 比如做很多前提假设, 不健壮, 脆弱 )
有更好的方法?
相关代码
shell脚本, 我的思路
1. ps -ef 输出如下格式
UID PID PPID C STIME TTY TIME CMD
2. 利用 grep 'mysql' 过滤
3. 利用 cut 或 awk 取需要的数据
上下文环境
产品版本: mysql(自己编译)
操作系统: RedHatLinux
不知道行不行