说执行 bash 脚本的唯一方法是“cat script.sh | bash”(在真实情况下,它是一个二进制文件,将其每行输出行写入一个匿名管道,并且 bash 实例连接到它的读取端)有没有办法传递 cmdline 参数(即让它像“bash script.sh ab c”一样运行,这样 $@ 就不为空了)?
提前感谢 GK 的指点
答案1
好的,在对 execve 的环境数组中传递的 BASH_ARGC/ARGV 进行了一些奇怪的尝试后,我找到了简单的解决方案:cat script.sh | bash -sabc