首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在shell脚本中使用相同的命令,只需前缀

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

Stack Overflow用户
提问于 2014-06-02 11:50:20
回答 2查看 216关注 0票数 0

我有一个命令来检查某个数据库是否存在。

我想在本地并通过远程服务器上的ssh执行此操作。

该命令是这样的:

代码语言:javascript
复制
mysqlshow -uroot | grep -o $DB_NAME

我的问题是,如果我可以对两个变量使用相同的命令,

唯一的区别是ssh <remote-server>在1之前?

类似于CLI中的!!变量展开的内容:

代码语言:javascript
复制
LOCAL_DB=mysqlshow -uroot | grep -o $DB_NAME
REMOTE_DB=ssh <remote-host> !!
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-02 11:54:33

也许是这样的?

代码语言:javascript
复制
cmd="whoami"
eval $cmd
ssh remote@host $cmd

eval将在本地运行字符串$cmd中的命令。

此外,对于检查表,更安全的做法是通过查询显式地请求表名

代码语言:javascript
复制
SHOW TABLES LIKE 'yourtable';

对于数据库:

代码语言:javascript
复制
SHOW DATABASES LIKE 'yourdb';
票数 1
EN

Stack Overflow用户

发布于 2014-06-02 12:12:24

您可以在.bashrc中创建一个函数,类似于:

代码语言:javascript
复制
function showrdb() {  
   ssh remote@host "$1" 
}  
export -f showrdb

然后对.bashrc进行源化,调用类似的函数;

代码语言:javascript
复制
showrdb "command you want to run on remote host"

或者,您也可以创建一个包含相同函数(或仅包含ssh行)的shell脚本,并调用脚本如下

代码语言:javascript
复制
./scriptname "command to execute of remote host"

但对我来说,第一步的安慰程度就更高了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23993858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档