Shell 脚本无法执行传递的命令作为输入

Shell 脚本无法执行传递的命令作为输入

我正在尝试从脚本执行命令但无法执行它。

脚本:command.sh

#!/bin/bash
a=$1  
b=$2
echo "a=$a"
echo "b=$b"
`$a | $b`

执行命令:

bash-3.2$./command.sh“tar cvf-DIR”“压缩-c>/export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z”

输出:

./command.sh “tar cvf - DIR” “压缩-c> /export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z”

a=tar cvf-DIR

b=压缩-c >/export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z

/export/home/tceng/Desktop/temp/TestExtractUtility/tem/DIR.tar.Z: 已经有 .Z 后缀 - 无变化 tar: DIR: 没有此文件或目录 bash-3.2$

{注意:要求是完整传递两个命令,不要修改或在脚本中添加逻辑}。

命令直接从提示符运行。我认为 > 运算符存在问题

您能就此提出一些建议吗?

谢谢,阿尼尔

答案1

删除反引号。这对我来说似乎有效。这是你想要的吗?

#!/bin/sh
a=$1  
b=$2
echo "a=$a"
echo "b=$b"
$a | $b

相关内容