我有一个脚本,用于在调用csh shell中设置一些env var。其中一些变量取决于脚本的位置。
如果该文件是正确的csh脚本,则可以使用$ 0进行访问,__FILE__但是如果使用源代码运行该脚本,它只会告诉我csh或tcsh。
由于我使用此方法在父shell中设置var,因此必须使用source。
该怎么办?
如果您访问$_文件的第一行,它将包含文件的名称(如果它是来源的)。如果直接运行则将$0包含名称。
#!/bin/tcsh
set called=($_)
if ($called[2] != "") echo "Sourced: $called[2]"
if ($0 != "tcsh") echo "Called: $0"
Run Code Online (Sandbox Code Playgroud)