在shell脚本中使用相同的命令,只使用前缀

时间:2014-06-02 11:50:21

标签: linux bash shell ssh

我有一个命令,我检查是否存在某个数据库 我想在本地和通过远程服务器上的ssh进行 命令如下:

mysqlshow -uroot | grep -o $DB_NAME

我的问题是我是否可以对2个变量使用相同的命令,
唯一的区别是ssh <remote-server>在一个之前? CLI中!!变量扩展的内容:

LOCAL_DB=mysqlshow -uroot | grep -o $DB_NAME
REMOTE_DB=ssh <remote-host> !!

2 个答案:

答案 0 :(得分:1)

也许这样的事情?

cmd="whoami"
eval $cmd
ssh remote@host $cmd

eval将在字符串$cmd本地

中运行命令

另外,对于检查表格,通过查询明确要求表格名称更安全

SHOW TABLES LIKE 'yourtable';

和数据库:

SHOW DATABASES LIKE 'yourdb';

答案 1 :(得分:0)

您可以在.bashrc中创建一个函数,例如:

function showrdb() {  
   ssh remote@host "$1" 
}  
export -f showrdb

然后来源.bashrc并调用函数,如;

showrdb "command you want to run on remote host"

或者您可以创建一个包含相同功能(或仅ssh行)的shell脚本,并将脚本调用为

./scriptname "command to execute of remote host"

但对我来说,舒适程度更多是第一种方法。

相关问题