首页
学习
活动
专区
圈层
工具
发布

解决shell脚本中source etcprofile重载配置文件不生效的问题

背景 最近在通过shell脚本在Linux系统安装Java或Python的过程中,遇到了shell脚本中的“source /etc/profile”无法生效的问题,虽然也可以在执行完脚本后再次执行“source...python3命令) 2.原因 执行脚本时,脚本中的命令是在子shell中执行,子shell只能继承父shell的环境变量,而无法修改父shell的环境变量,所做的修改仅对当前子shell有效。...所以,当脚本执行完成,回到shell命令行,原子shell脚本中执行的source命令也就不生效。 3.解决办法 方法一: # 也就是上述提到的繁琐的方法 ....(点) 用于使shell读取指定的shell文件,并依次执行文件中的所有语句 作用于当前shell进程 sh 执行指定shell脚本,在子shell中执行脚本中的语句 创建一个子shell,在新的namespace...中执行此脚本,继承父shell环境变量,但不改变父shell环境变量,仅对当前子shell有效 ./ 执行当前脚本文件,前提是待执行的文件具有可执行属性,等价于sh 创建一个子shell,在新的namespace

10.7K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    入门 Shell 脚本编程:探索 Linux 中的脚本魔力

    标题:入门 Shell 脚本编程:探索 Linux 中的脚本魔力介绍  Shell 脚本编程是 Linux 系统中的一项强大工具,通过脚本编写可以自动化执行任务、管理系统以及进行复杂的数据处理。...Shell 是一个命令行解释器,可以通过命令行与操作系统交互。Shell 脚本是一系列 Shell 命令的集合,通过脚本文件一次性执行多个命令,以实现特定任务。...二、开始编写你的第一个 Shell 脚本1. 创建脚本文件登录Linux服务器(例如Centos),创建一个脚本文件 my_script.sh2..../bin/bash:指定脚本使用 Bash 解释器执行。# 这是一个简单的 Shell 脚本示例:这是一个注释,提供了关于脚本的描述信息。在 Shell 脚本中,以 # 开头的行表示注释,不会被执行。.../my_script.sh # 运行脚本chmod 是一个 Linux/Unix 命令,用于改变文件或目录的权限。在这里,+x 表示添加执行权限,my_script.sh 是需要添加权限的文件名。

    1.7K30

    在 Shell 脚本中调用另一个 Shell 脚本的三种方式

    子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。 exec exec 与 fork 不同,不需要新开一个子 Shell 来执行被调用的脚本....被调用的脚本与父脚本在同一个 Shell 内执行。但是使用 exec 调用一个新脚本以后, 父脚本中 exec 行之后的内容就不会再执行了。...这是 exec 和 source 的区别. source 与 fork 的区别是不新开一个子 Shell 来执行被调用的脚本,而是在同一个 Shell 中执行....exec 在同一个 Shell 内执行,但是父脚本中 exec 行之后的内容就不会再执行了 source 在同一个 Shell 中执行,在被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用...参考: 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)

    5.3K20

    shell脚本运行jar包获取参数_linux加载一个目录下的所有jar包

    大家好,又见面了,我是你们的朋友全栈君。 当使用SpringBoot框架时,他自己集成了tomcat。在启动jar包时,经常需要复制一大段命令,尤其是在项目目录发生改变的时候,实在繁琐。...所以可以使用shell脚本来启动、关闭和重启Java项目。 创建一个shell脚本 vim 脚本名.sh 脚本内容: #!.../bin/bash #这里替换为你自己的执行程序的名称 JAR_NAME=jar包名称 #lib目录 LOAD_PATH="-Dloader.path=/home/local/lib/" #项目配置文件...包 sh 脚本名.sh start 以后就再也不用复制命令了,直接一键启动。。。。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.4K20

    linux21-shell脚本中的循环操作

    Date : [[2022-05-01_Sun]] Tags : #linux/index/01 参考: Shell 流程控制 | 菜鸟教程[1] shell编程:for循环 - trafalgar999...- 博客园[2] 前言 最近忽然发现,自己shell 中的循环,似乎除了while read id 以外,忘得一干二净了。...1-for循环 鼎鼎有名的for,自然是每种语言都不可或缺的。 在shell 中,存在两种风格的for 语句。...,因此,如果尝试直接对文件操作: $ for i in test.txt > do echo $i ; done test.txt 我们可以利用shell 命令替换的语法(找一期详细介绍一下),比如...echo $i; done 1 2 3 4 5 6 7 8 9 10 2-C语言风格的for循环 shell 中的for 循环,需要使用双括号进行选择,其中的结构和C 中的for 非常类似,都是三段式

    1.2K20

    linux中编写同步文件的脚本

    搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉!...编写一个名为xsync的脚本文件: 作用: 将当前机器的文件,同步到集群所有机器的相同路径下!...hadoop102:/A/a , 执行脚本后,将此文件同步到集群中所有机器的 /A/a 用户在使用xsync时,只需要传入要同步的文件即可 xysnc a 不管a是一个相对路径还是绝对路径,都需要将...exit; fi #获取分发文件的绝对路径 dirpath=$(cd `dirname $1`; pwd -P) filename=`basename $1` echo 要分发的文件的路径是:$dirpath...bin目录,如果没有就新建一个bin目录,因为这目录是在全局环境变量中,放进去后无论在哪个目录下都可以执行这个脚本文件!

    2.9K10

    在Shell脚本中逐行读取文件的命令方法

    变量为文本文件中的每行内容 Tips:可以将上面的脚本缩减为一行命令,如下: [root@localhost ~]# while read rows; do echo "Line contents are...- 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容 Tips:可以将上面的脚本缩减为一行命令,如下: [root@localhost ~]# cat mycontent.txt...,并在变量“rows”中保存每一行的内容 - 使用echo显示输出内容,$rows变量为文本文件中的每行内容 - 使用输入重定向文件内容 方法四、使用awk命令 通过使用awk命令.../bin/bash cat mycontent.txt |awk '{print "Line contents are: "$0}' 运行结果: 总结 本文介绍了如何使用shell脚本逐行读取文件内容...,通过单独读取行,可以帮助搜索文件中的字符串。

    12.1K21

    原 shell脚本中的逻辑判断,文件目录属

    shell脚本中的逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=);...,切存在 【-d file 】判断是否是目录,且存在 【 -e file 】判断文件或目录是否存在 【 -r file 】判断文件是否可读 可写 可执行 = 类似 判断的不同写法:【 -f $f 】||...-e file ]; then 表示文件不存在时会怎么样 if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… [ ] 中不能使用,==,!...,或者被删除的话,脚本就会运行出错,出现bug 应该加上一个判断条件 #!...: 在网卡系统服务脚本中,如,/etc/init.d/iptables中就用到了case 在case中,可以在条件中使用“|”,表示或的意思 输入一个同学的分数,判断成绩是否及格,优秀。

    2.1K51

    linux: 如何高效处理Shell脚本中的大量参数

    在编写Shell脚本时,我们常常需要处理大量的参数。为了提高代码的可读性和可维护性,我们需要一些技巧来高效地管理这些参数。本文将探讨几种有效的方法,帮助我们简化Shell脚本中的参数处理。...位置参数的限制 在Shell脚本中,位置参数用于传递给脚本或函数的参数。位置参数有一定的限制: 直接使用的限制:位置参数 1 到 9 是直接可用的。...} set_sentinel_conf "$@" 方法三:使用配置文件 将所有参数放入配置文件中,然后在脚本中读取配置文件。...print_message "This is a test with spaces" 结论 在Shell脚本中处理大量参数时,可以选择使用数组、键值对、配置文件或全局变量来简化参数的管理。...同时,在传递和引用参数时加引号可以避免解析错误,提高脚本的可靠性。根据具体需求选择合适的方法,可以大大提高脚本的可读性和可维护性。

    1.5K10

    【Linux系列】Shell 脚本中的条件判断:``与`]`的比较

    在编写 Shell 脚本时,条件判断是控制脚本流程的重要手段。Shell 提供了多种方式来进行条件判断,其中[ ]和[[ ]]是两种常见的条件测试表达式。...[[ ]]的优势在于它可以直接处理模式匹配,这使得它在处理字符串时更加方便。 4. 变量和字符串的处理 在 Shell 脚本中,正确处理变量和字符串是非常重要的。...条件判断的应用场景 条件判断在 Shell 脚本中有着广泛的应用,例如: 分支处理:根据条件选择不同的脚本分支执行。 参数检查:在脚本执行前检查参数的有效性。...环境配置:根据不同的环境变量配置脚本的行为。 错误处理:根据条件判断是否发生错误,并执行相应的错误处理代码。 6. 结论 在 Shell 脚本编写中,[ ]和[[ ]]都是进行条件判断的重要工具。...因此,在 Bash 脚本中,推荐使用[[ ]]来进行条件判断,以利用其强大的功能和更好的性能。

    62210

    linux学习第六十三篇:Shell脚本介绍,Shell脚本结构和执行,date命令用法,Shell脚本中的变量

    Shell脚本介绍 shell是一种脚本语言 aming_linux blog.lishiming.net 可以使用逻辑判断、循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维...,能大大增加我们的运维效率 Shell脚本结构和执行 开头需要加#!.../bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本 执行方法有两种 chmod +x 1.sh; ./1.sh ; 这个....date +%W Shell脚本中的变量 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替 使用条件语句时,常使用变量 if [ $a -gt 1 ]; then … ;...fi 引用某个命令的结果时,用变量替代 n=wc -l 1.txt 写和用户交互的脚本时,变量也是必不可少的 read -p “Input a number: ” n; echo n如果没写这个

    2.2K70

    Linux Shell循环详解(从零开始掌握Shell脚本中的循环结构)

    在Linux系统中,Shell脚本是自动化任务的强大工具。而循环则是Shell脚本中不可或缺的控制结构,它能让你重复执行一段代码,直到满足特定条件为止。...无论你是刚接触Linux的新手,还是想巩固基础知识的中级用户,本文都将带你一步步理解并掌握Linux Shell循环的使用方法。一、为什么需要循环?...这就是Shell脚本教程中循环的价值所在。...二、Shell中常见的循环类型在Bash(最常用的Shell)中,主要有两种循环结构:for 循环:用于遍历一个列表(如数字、文件名等)while 循环:只要条件为真,就持续执行1. for 循环的基本用法...这些知识是编写高效Shell脚本教程内容的基础。多加练习,你很快就能写出自动化的强大脚本!提示:建议在虚拟机或测试环境中练习,避免误操作影响生产系统。

    57610

    Shell脚本循环读取文件中的每一行

    ,并将内容保存到变量line中。...在这里,-r选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生。输入重定向操作符文件file,然后将它作为read命令的标准输入。...今天遇到一个问题弄了好久才搞明白:我想在循环中动态链接字符串,代码如下: for line in `cat filename` do echo ${line}XXYY done 就是在每一次循环过程中给取出来的字符串后面添加...后来发现是因为我的文件是才Window下生产的,在Linux下读取这样的文件由于换行符的不同会导致程序运行不出来正确的结果。...解决办法:在Linux安装dos2unix小工具,经过该工具转化以后的文件再进行读取就没有问题了。

    7.4K20

    Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。...或cd /data/shellsh hello.sh注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。...因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。...方法四:在当前的shell环境中执行bash shell脚本:cd /data/shell. hello.sh或cd /data/shellsource hello.sh前三种方法执行shell脚本时都是在当前...shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

    19.6K30
    领券