已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
三个月前关门了。
Improve this question
如何执行shell命令,保留所有ENV变量,指定shell类型/示例等。访问所有别名,并设置更多别名。
示例:
#!/usr/bin/perl
system("alias test-alias echo TEST;");
system("test-alias;");
system("echo \$SHELL");
结果:
sh: line 0: alias: test-alias: not found
sh: line 0: alias: echo: not found
sh: line 0: alias: TEST: not found
sh: test-alias: command not found
/tool/pandora/bin/tcsh
2条答案
按热度按时间blmhpbnm1#
这是因为在
sh
中创建别名的正确语法是已修复:
sh: 1: test-alias: not found
在修复了第一个问题之后,仍然会出现这种情况。您确实创建了一个shell,并且在其中创建了一个名为
test-alias
的别名,但是该shell退出了。您正在一个新的shell中运行test-alias;
,在该shell中还没有创建test-alias
。您需要在同一shell中运行这两个命令。
已修复:
m3eecexj2#
Perl有一个特殊的全局变量
%ENV
,它存储了Perl启动时使用的所有环境变量。获取所有环境变量。
您也可以使用这个杂凑来储存新的环境变量。
上面将打印
bla
。如果你这样做的话,当然可以。然后它会产生一个新的Shell,你在那里设置了
$FOO
。但是我看不出这里有什么意义。只要在Linux中使用.profile
或者其他什么来设置环境变量。最后一点在我看来像是一个经典的XY问题。