Linux 系统设置 env,export,set,declare 的区别

unix shell的变量分类
在Shell中有三种变量:内部变量,环境变量,用户变量。
内部变量:系统提供,不用定义,不能修改
环境变量:系统提供,不用定义,可以修改,可以利用export将用户变量转为环境变量.
用户变量:用户定义,可以修改

(1)内部变量(系统变量,环境变量,参数变量,预定义变量)
 内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。
   表示方法     描述
   $n     $1 表示第一个参数,$2 表示第二个参数 ...
   $#     命令行参数的个数
   $0     当前程序的名称
   $?     前一个命令或函数的返回码
   $*     以"参数1 参数2 ... " 形式保存所有参数
   $@     以"参数1" "参数2" ... 形式保存所有参数
   $$     本程序的(进程ID号)PID
(2) 环境变量
  Linux环境(也称为shell环境)由许多变量及这些变量的值组成,由这些变量和变量的值决定环境外观。这些变量就是环境变量。
 包括两部分,一是,由系统设置的,主要包括: HOME,LOGNAME,MAIL,PATH,PS1,PWD,SHELL,TERM
 二是,用户在命令行中设置的,使用export命令,但是用户注销时值将丢失
(3)用户变量(私有变量,本地变量)
  在命令行中自己设定的.

env, export,set和declare命令的区别
  
env显示用户的环境变量;(包括了 export 显示出来的 和一些没有被导出为环境变量的系统变量)
set 显示当前shell定义的变量,包括环境变量,按变量名称排序;( 也就是整个shell中的所有变量 )
export 显示当前导出为环境变量的shell变量,并显示变量的属性(是否只读),按变量名称排序;(export 显示出来的一部分是系统环境变量被导出来作为环境变量,一部分是用户 执行 export 或者 declare +x 自定义的变量手动导出为环境变量)
declare 同set 一样 ( 也就是整个shell中的所有变量 )

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用 `env.setVariable` 方法设置一个对象值。具体步骤如下: 1. 首先,定义一个对象类,例如: ```java public class User { private String name; private int age; // 省略 getter 和 setter 方法 } ``` 2. 在 Java 代码中创建一个 User 对象,然后将其存入到 model 中: ```java User user = new User(); user.setName("Tom"); user.setAge(18); model.addAttribute("user", user); ``` 3. 在 Freemarker 模板中,使用 `${user.name}` 和 `${user.age}` 表示 User 对象的属性值: ```html <div> <p>姓名:${user.name}</p> <p>年龄:${user.age}</p> </div> ``` 注意:在 Freemarker 模板中,如果要访问对象的属性,需要使用 `${对象名.属性名}` 的方式。同时,需要将 User 对象存入到 model 中,使其能够在模板中访问到。 ### 回答2: 在SpringBoot中使用Freemarker模板引擎,我们可以通过`env.setVariable`方法来设置对象的值。 首先,需要在代码中获取`Configuration`对象,该对象负责处理解析及渲染Freemarker模板。可以通过`@Autowired`注解将其注入到Spring容器中。 然后,我们可以利用`env`对象设置变量的值。`env`对象是Freemarker的环境对象,它包含了许多与模板相关的设置和方法,包括变量的设置和获取。 假设我们有一个名为`user`的Java对象,包含了用户的姓名和年龄等属性。我们想要在模板中使用该对象,可以通过以下步骤设置其值。 ```java @Autowired private Configuration freemarkerConfig; public void setVariableExample() { try { Template template = freemarkerConfig.getTemplate("example.ftl"); // 加载模板文件 User user = new User("张三", 30); // 假设有一个名为User的Java对象 TemplateModel userModel = freemarkerConfig.getObjectWrapper().wrap(user); // 将Java对象转为TemplateModel对象 Environment env = template.createProcessingEnvironment(null, new StringWriter()); // 创建模板的环境对象 env.setVariable("user", userModel); // 设置变量的值 template.process(env.getVariableBindings(), new OutputStreamWriter(System.out)); // 输出模板内容 } catch (Exception e) { e.printStackTrace(); } } ``` 在上述代码中,我们通过`freemarkerConfig.getTemplate`方法加载模板文件,并创建了一个名为`user`的Java对象。接下来,通过`freemarkerConfig.getObjectWrapper().wrap`方法将Java对象转换为`TemplateModel`对象。 然后,我们使用`template.createProcessingEnvironment`方法创建模板的环境对象,并通过`env.setVariable`方法设置变量的值。在本例中,我们设置了名为`user`的变量的值为我们的Java对象。 最后,通过`template.process`方法将模板内容输出到控制台。我们可以在模板中使用`${user.name}`和`${user.age}`访问Java对象的属性。 这样,我们就成功地使用`env.setVariable`方法设置了一个对象的值。 ### 回答3: 在Spring Boot中使用FreeMarker的时候,可以通过env.setVariable方法来设置一个对象的值。 首先,需要在Spring Boot项目中配置FreeMarker的相关环境。可以在application.properties文件中添加以下配置: ``` spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.suffix=.ftl ``` 其中,template-loader-path指定了FreeMarker模板文件的路径,suffix指定了模板文件的后缀名。 然后,在需要使用FreeMarker的地方,可以通过注入FreeMarker的Configuration对象,将要使用的数据对象设置到模板引擎的环境变量中。 假设有一个User对象,包含用户名和年龄: ```java public class User { private String username; private int age; // 省略getter和setter } ``` 可以如下使用env.setVariable方法来设置User对象的值: ```java @Autowired private Configuration freemarkerConfiguration; public void renderTemplate() throws IOException, TemplateException { Template template = freemarkerConfiguration.getTemplate("example.ftl"); StringWriter writer = new StringWriter(); User user = new User(); user.setUsername("John"); user.setAge(25); Environment env = template.createProcessingEnvironment(user, writer); env.setVariable("user", ObjectWrapper.DEFAULT_WRAPPER.wrap(user)); env.process(); String result = writer.toString(); System.out.println(result); } ``` 在上述代码中,首先通过freemarkerConfiguration.getTemplate方法获取要使用的FreeMarker模板文件example.ftl。然后,创建一个StringWriter对象来保存模板渲染后的内容。 接下来,创建一个User对象并设置其属性值。然后,通过template.createProcessingEnvironment方法创建一个Environment对象。最后,使用env.setVariable方法将User对象设置到环境变量中,键名为"user"。 之后,可以调用env.process来进行模板的渲染,将渲染结果保存到StringWriter对象中。最后,使用writer.toString方法获取渲染后的字符串,并进行后续的操作。 通过以上的步骤,就可以在Spring Boot中使用FreeMarker的env.setVariable方法设置一个对象的值了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HarkerYX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值