首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配给路径变量的字符串

分配给路径变量的字符串
EN

Stack Overflow用户
提问于 2020-05-24 01:17:00
回答 2查看 112关注 0票数 0

我是Linux/Unix编程的新手,正在学习本教程:https://www.tutorialspoint.com/unix/unix-environment.htm

在本教程中,它指出主目录中的.profile文件初始化变量,并将路径变量初始化为:$ PATH =/bin:/usr/bin$

但是,当我打印我的.profile文件的内容时,我会得到以下内容:

代码语言:javascript
复制
 1  # ~/.profile: executed by the command interpreter for login shells.
 2  # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
 3  # exists.
 4  # see /usr/share/doc/bash/examples/startup-files for examples.
 5  # the files are located in the bash-doc package.

 6  # the default umask is set in /etc/profile; for setting the umask
 7  # for ssh logins, install and configure the libpam-umask package.
 8  #umask 022

 9  # if running bash
10  if [ -n "$BASH_VERSION" ]; then
11      # include .bashrc if it exists
12      if [ -f "$HOME/.bashrc" ]; then
13      . "$HOME/.bashrc"
14      fi
15  fi

16  # set PATH so it includes user's private bin directories
17  PATH="$HOME/bin:$HOME/.local/bin:$PATH"

我的问题是

(1)项变量没有初始化?

(2)路径变量被初始化为记忆体(?)--因为我找不到任何名为'HOME‘的文件夹,所以路径$HOME/bin和$HOME/..local/bin没有意义;$PATH也是哪个文件夹?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-24 01:49:30

术语集在哪里?

有关1,请参见https://unix.stackexchange.com/questions/198794/where-does-the-term-environment-variable-default-get-set。在命令行中,您可以键入:

代码语言:javascript
复制
echo $TERM

如果没有输出,这就意味着没有设置术语变量。只要FYI,如果条件是变量,您可以使用$TERM输出它的值。

什么是家/$HOME?

对于2,HOME设置为主目录。如果您以kaind身份登录,您的HOME变量很可能设置为/home/kaind。它的值可以使用$HOME检索。请参阅https://superuser.com/questions/271925/where-is-the-home-environment-variable-set以查看如何设置HOME。

什么是路径/$PATH?

PATH="$HOME/bin:$HOME/.local/bin:$PATH"意味着路径变量被设置为:分隔的路径。第一个是$HOME/bin。扩展到/home/kaind/bin。然后,你有$HOME/..local/bin。扩展到/home/kaind/..local/bin。诸若此类。

你的程序如何被执行?

如果您在$HOME/bin或$HOME/..local/bin中有一个可执行文件,则可以在命令行中直接键入该程序,而无需提供完整的路径。

例如,假设您有一个名为/home/kaind/script的文件夹。在这个过程中,您有一个名为run.sh的可执行文件。work.sh在/home/kaind/bin下面。

为了执行run.sh,您必须键入:

代码语言:javascript
复制
$> /home/kaind/scripts/run.sh
or
$> $HOME/scripts/run.sh
or
$> ~/scripts/run.sh (~ is an alias for $HOME)

为了从下面的/home/kaind/bin执行work.sh,您可以键入完整的路径,但不必输入,因为/home/kaind/bin (又名$HOME/bin)在您的路径中。因此,您可以键入:

代码语言:javascript
复制
$> work.sh

来执行它。键入程序时,将逐个检查路径变量中列出的路径。如果程序被找到,它就会被执行。

票数 1
EN

Stack Overflow用户

发布于 2020-05-24 01:23:58

$TERM变量是一个环境变量,它控制终端是否有颜色。变量$HOME设置为主目录。要了解这一点,您可以这样做:

代码语言:javascript
复制
echo $HOME

代码语言:javascript
复制
cd $HOME

您需要在变量的开头加上$,否则bash将不知道您引用的是变量,而是将其视为字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61980501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档