【发布时间】:2023-04-03 20:23:01
【问题描述】:
我需要制作一个可以修改调用shell的环境变量的脚本。为了允许脚本修改环境变量,我使用了source <script>,并且我希望 bash 和 tcsh 都能够使用相同的脚本。
我发现 tcsh 和 bash 有不同的 if 语法,所以我什至无法在脚本内的两者之间切换。处理设置环境变量的最佳方法是什么?
【问题讨论】:
-
检测你正在采购的脚本之外的 shell,并为 POSIX shell 和 tcsh 使用两个不同的脚本 :) 编写一个在 POSIX sh 和 tcsh 中都可以工作的脚本可能会相当痛苦(但也许实际上并非不可能,因为两者都支持
||和&&...) -
这就是我害怕的。谢谢你告诉我
-
问题:你为什么使用两种不同的 shell 语言?坚持一个可能是更好的长期策略。
-
我强烈同意 cdarke —— 做通常的事情要理智得多,并且有
yourscript.csh和yourscript.bash用于打算采购的东西,并让用户选择适当的错误。 csh 语法是 full of pitfalls,在其中写任何实质性内容都需要做出最好避免的妥协。
标签: bash shell environment-variables tcsh