在exec系统调用中运行alias命令

在exec系统调用中运行alias命令,c,alias,C,Alias,我们可以创建许多包装器脚本来调用特定的二进制文件,并使用alias指向不同的字符串 我的要求是我们需要在exec系统调用中调用别名字符串 如果我们在exec调用中直接运行该字符串,系统调用将失败 例: 上述execl系统调用失败。我认为它无法在路径中找到别名字符串,这是意料之中的。如何摆脱这个问题???使用ksh/bash和command作为选项,效果非常好。谢谢别名是一个shell构造。要运行bash别名,执行的程序应该是bash-c要使用exec,您需要展开别名,并运行别名作为别名的基础命令

我们可以创建许多包装器脚本来调用特定的二进制文件,并使用alias指向不同的字符串

我的要求是我们需要在exec系统调用中调用别名字符串

如果我们在exec调用中直接运行该字符串,系统调用将失败

例:


上述execl系统调用失败。我认为它无法在路径中找到别名字符串,这是意料之中的。如何摆脱这个问题???

使用ksh/bash和command作为选项,效果非常好。谢谢

别名是一个shell构造。要运行bash别名,执行的程序应该是
bash-c
要使用
exec
,您需要展开别名,并运行别名作为别名的基础命令。您需要特别指示
bash
展开非交互shell中的别名。还请注意,依赖别名可能会带来安全威胁。无论是谁提出这样的要求,都需要给他一些非常严厉的表情。可能最好通过ksh或bash的exec尝试,并给出别名字符串作为参数。我会尝试让你知道
af45sp01> alias | grep bulk
bulkactivation=wrap_alias=''\''bulkactivation 1'\'' /iscp/node/bin/isnm_wrapper /iscp/space/scr/issp_bulk_activation'

char *pgm_name = "bulkactivation";
      execl((char*)(const char*)path_name, 
            (char*)(const char*)pgm_name,0);