如何在 unix 中设置 $ 变量?

Laz*_*zer 6 unix shell csh

例如,我cd经常要走很长的路。如何将路径存储在变量中以便我每次都可以使用它?

例如:我希望能够做到这一点

cd $path
Run Code Online (Sandbox Code Playgroud)

代替

cd /a/b/c/d/e/f 
Run Code Online (Sandbox Code Playgroud)

每次。

Pau*_*han 10

在 Bash 外壳中:

export FOO="/a/b/c"

而你希望使用$路径。这是一个特殊的变量。

  • 好吧, $PATH 是一个特殊变量, $path 不是。不过我还是会避免使用它。 (10认同)
  • +1 关于不使用 $path 的好处。那会很糟糕。 (2认同)
  • 您可能不需要 export:如果您只需要在当前 shell 中引用此变量,只需“foo=/a/b/c”就足够了。如果您希望将变量传播到子进程(就像从 shell 运行其他程序时一样),那么您需要 export 命令。 (2认同)

Den*_*son 7

您不太可能需要环境中的变量。

因此,在 csh 而不是 中setenv,您可以执行以下操作:

set dir="/a/b/c/d/e/f"
cd $dir
Run Code Online (Sandbox Code Playgroud)

或在 Bash 中,而不是export

dir="/a/b/c/d/e/f"
cd $dir
Run Code Online (Sandbox Code Playgroud)


aki*_*ira 6

假设你真的想要 csh/tcsh 语法(因为你已经标记了你的问题),把这个

setenv P1 "/a/b/c/d/e/f"
Run Code Online (Sandbox Code Playgroud)

到您的 .tcshrc

之后你就可以做

cd $P1
Run Code Online (Sandbox Code Playgroud)