• 【CSH 入门基础 8 -- csh 中 set 与 setenv 的区别 】


    csh(C shell)和它的变体 tcsh(增强型 C shell)中,setsetenv 是设置变量的两个不同命令。它们分别用于设置 shell 变量和环境变量。以下是两者的详细介绍和例子:

    set 命令

    set 命令用于定义或修改 shell 变量的值。Shell 变量只在当前 shell 中有效,并不会被子 shell 或其他程序继承。
    语法:

    set variable=value 
    
    • 1

    例子:

    set myvar="Hello World" 
    
    • 1

    这个命令创建了一个名为 myvar 的 shell 变量,并给它赋值为字符串 “Hello World”。
    要显示变量的值,可以使用 echo 命令:

    echo $myvar 
    
    • 1

    要清除变量,使用 unset 命令:

    unset myvar 
    
    • 1

    setenv 命令

    setenv 命令用于设置环境变量。与 shell 变量不同,环境变量会被传递给当前 shell 的子进程。这些变量通常用于配置系统行为或提供程序运行时需要的信息。

    语法:

    setenv VARIABLE VALUE 
    
    • 1

    注意 VARIABLE 通常大写,但这不是必须的。

    例子:

    setenv PATH "/usr/local/bin:$PATH" 
    
    • 1

    这个命令将 /usr/local/bin 添加到当前的 PATH 环境变量之前。$PATH 是引用现有的 PATH 值。

    要显示环境变量的值,可以直接 echo

    echo $PATH 
    
    • 1

    要清除环境变量,使用 unsetenv 命令:

    unsetenv PATH
    
    • 1

    区别

    主要区别在于它们设置的变量类型不同:

    • set 用于设置 shell 变量,这些变量只在当前 shell 中有效。
    • setenv 用于设置环境变量,这些变量能够被当前 shell 及其子进程所继承。

    环境变量通常用于系统配置,而 shell 变量更多用于控制 shell 本身的行为。例如,PATH 是一个环境变量,它告诉 shell 在哪些目录中查找可执行文件;prompttcsh 的 shell 变量,用于设置命令提示符的显示样式。

    设置系统路径变量PATH

    csh 中,你可以使用 set 命令来设置路径变量。你可以添加一个新的目录到 path,也可以重置整个 path 变量。以下是两种常见的设置方式:

    添加单个路径
    set path = ($path /new/directory) 
    
    • 1

    这个命令将 /new/directory 添加到现有的 path 变量列表中。注意 $path 是引用现有的 path 内容,新的目录 /new/directory 被添加到这个列表的末尾。

    设置多个路径
    set path = (/usr/local/bin /usr/bin /bin /new/directory) 
    
    • 1

    这个命令完全重置 path 变量,包含了新的一系列目录。

    举例

    假设你想添加你的家目录下的 bin 目录到 path,以便你能够直接执行那个目录中的脚本和程序。 在 csh 中,你可以执行以下命令:

    set path = ($path ~/bin) 
    
    • 1

    这样设置之后,如果你有可执行文件在 ~/bin 目录中,你可以从任何位置直接通过文件名来调用它们,就像其他系统命令一样。

    如果你想让这个变更在每次登录时自动生效,你应该将这行命令添加到你的 home 目录下的 .cshrc 文件中。.cshrc 文件是 csh 启动时读取的配置文件,类似于 Bash 的 .bashrc

    例子:编辑 .cshrc 文件

    打开 .cshrc 文件:

    vi ~/.cshrc 
    
    • 1

    然后添加设置 path 变量的命令:

    set path = ($path ~/bin) 
    
    • 1

    保存并退出编辑器。 下次当你打开一个新的 csh 会话时,你的 path 将自动包含你的 ~/bin 目录。

    设置文件路径

    csh (C Shell) 中设置文件路径通常涉及到定义环境变量,这些环境变量可以用来存储文件或目录的路径,便于在脚本或命令行中使用。以下是如何在 csh 中设置文件路径的不同场景。

    设置和使用局部变量

    如果你不需要在子进程中使用某个路径变量,你可以使用 set 命令来定义一个局部变量:

    set my_file = "/path/to/my/file" 
    
    • 1

    局部变量 my_file 可以在当前 csh 会话中使用,但不会传播到子进程。你可以通过 $my_file 来引用它:

    cat $my_file 
    
    • 1

    永久设置变量

    如果你想要每次开启 csh 都能使用这些变量,你可以将 setenv 或者 set 命令添加到你的 ~/.cshrc 文件中。例如:

    echo 'setenv MY_FILE_PATH "/path/to/my/file"' >> ~/.cshrc 
    
    • 1

    这样,每当你启动一个新的 csh 会话时,MY_FILE_PATH 环境变量就会自动设置。 记得每次修改 ~/.cshrc 文件后,为了让变更立即生效,可以通过 source 命令重新读取文件: csh source ~/.cshrc 或者简单地开启一个新的 csh 会话。

  • 相关阅读:
    服务器简单介绍
    CenterNet算法代码剖析
    tag单调栈-单调栈预备知识-lt.739. 每日温度
    【嵌入式——QT】QComboBox和QPlainTextEdit
    虚拟主播是什么,有什么技术原理?- 沉睡者IT
    pytest运行时参数说明,pytest详解,pytest.ini详解
    Linux openGauss 数据库远程连接
    语言大模型的分布式训练与高效微调指南
    python从入门到实践 第17章:使用API自己感悟和部分代码
    evm 代码分析
  • 原文地址:https://blog.csdn.net/sinat_32960911/article/details/134538675