linux - 执行命令(从变量)然后显示正确的 pid?

标签 linux bash unix

我有一个 bash 脚本,我想在其中执行如下操作:

_command="zcat database.sql.gz | mysql database"

eval "($_command) & echo $!"

我想从 bash 脚本在后台运行命令(存储在变量中),然后为该应用程序返回正确的 pid

如上所示,它目前返回 bash 脚本的 pid 而不是...

有人知道如何让它工作吗?

编辑:

如果我这样说;如果你想这样做,你会怎么做?

我真正想做的就是写下这个:

($_command) & echo $! - 但随后我收到一条错误消息,指出 gzip 不理解命令“-u”,gzip 以某种方式认为 mysql 命令属于它。奇怪。

最佳答案

eval "($_command) & echo $!"

$! eval 运行之前被展开。尝试转义它,例如“\$!”'$!'

关于linux - 执行命令(从变量)然后显示正确的 pid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905012/

相关文章:

python - 文件存在但控制台说它不存在

windows - 如何在git bash下更改目录

linux - 使用新数据更新 CSV 行并保存文件

linux - 如何开始使用 fbx-conv? "Command not found"问题

python - top 报告的 Python 线程的 ID

linux - 为什么 CMake 不尊重 LIBRARY_PATH 和 CPATH

bash - 打印文件中的每 n 行

linux - 链接目录中的文件,使用类似于 cp 的简单命令

bash - 计算shell脚本中2个不同文件夹中具有相同内容的文件数量

unix - 如何在unix中查找最近一小时内创建的文件