我在.bash_aliases中有一个循环函数来帮助我快速监控某些命令。
loop()
{
while sleep 1;
do $@;
done
}但是,我无法让这个命令工作:
# loop mysql vb -e 'select count(*) from postparsed;'
# loop mysql vb -e "select count(*) from postparsed;"
# loop "mysql vb -e 'select count(*) from postparsed;'"所有这些都返回mysql无效的命令行参数错误,因为整个字符串没有传递给mysql。
mysql 15.1 Demote10.4.12-MariaDB,使用Readline5.2版权(c) 2000,2018,甲骨文,MariaDB公司Ab等,用于debian (x86_64)。
用法: mysql选项
我也证实了这一点:
循环回显mysql vb -e‘从解析后选择计数(*);’
mysql -e从解析后选择count(*);
mysql -e从解析后选择count(*);
在我看来很好。
我遗漏了什么?为什么循环()函数没有正确处理mysql命令?
谢谢
发布于 2020-04-14 16:37:45
shell解释引号,因此脚本看不到您在命令行中输入的内容。你需要的是
loop mysql vb -e 'select count(*) from postparsed;'同时,您需要更改脚本,将整个SQL命令保持为一个单词。只需将参数数组双引号就可以实现这一点:
do "$@"https://stackoverflow.com/questions/61212654
复制相似问题