Shell 将变量设置在与命令相同的行上

Shell 将变量设置在与命令相同的行上,shell,sh,csh,Shell,Sh,Csh,在sh编程中,我可以做到: dryrun="echo " ./myscript.sh 脚本将其用作: ${dryrun}ls -l (as an example) 我似乎不知道如何在csh中调用脚本,以获得相同的效果一个简单的解决方案是使用env命令: env dryrun=echo ./myscript.sh 这几乎适用于任何shell。env命令获取var=value对的列表,并将它们添加到列表末尾的任何命令的环境中。有关更多信息,请参见manenv。我使用的主要是bash,因此我无法

在sh编程中,我可以做到:

dryrun="echo " ./myscript.sh
脚本将其用作:

${dryrun}ls -l (as an example)

我似乎不知道如何在csh中调用脚本,以获得相同的效果

一个简单的解决方案是使用
env
命令:

env dryrun=echo ./myscript.sh

这几乎适用于任何shell。
env
命令获取
var=value
对的列表,并将它们添加到列表末尾的任何命令的环境中。有关更多信息,请参见
manenv

我使用的主要是bash,因此我无法确定是否使用sh,更不用说csh了。对于bash,我会使用dryrun=“echo”/myscript.sh(注意分号)和${dryrun}和ls之间的空白。使用分号的解决方案做了一些根本不同的事情。Sergei正在设置一个对后续命令可见的环境变量。您的解决方案是设置一个shell局部变量,该变量在
myscript.sh
@larsks中不可用,谢谢您指出这一点!我在csh和bash下进行了测试,这两种方法都很有效。谢谢