首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
source shell 不生效
2024-08-13
shell脚本中source无效
发现在shell里面执行source,提示找不到命令.所以,我取搜了一些资料,总结一下. 一. 脚本中,source找不到命令--------------是因为用了sh执行脚本,而debian系统的sh指向dash.需要更改系统sh指向: (1)cd /bin (2)mv sh sh.old (3)ln -s sh bash 二. 为什么没有在控制台界面看到source的结果?--------因为控制台是一个shell,脚本是他的子shell.两者不是同一个环境. 分清楚几个shell执行的环境
shell脚本中执行source命令不生效的解决办法
一个shell脚本文件中有一个source命令,使用bash a.sh命令执行后source命令进行验证没有生效. 这是因为在shell脚本中执行source会看到效果,但是shell脚本执行完后再次验证就没看到效果. 此时可以换这种方式执行shell脚本命令:source a.sh
在脚本中使用source命令不生效
问题描述 1. 一次写自动化安装脚本,要安装java,需要将JAVA_HOME写到/etc/profile中,然后使用source命令,但是发现profile文件中确实有JAVA_HOME,使用echo $JAVA_HOME无输出值.手工source一下后发现可以输出$JAVA_HOME问题原因 1. 使用bash来调用脚本,而不是使用source或者.来调用脚本.导致了这个问题 2. 当我们使用source或者.调用脚本时,实际上是叫脚本放到当前环境中,对当前环境生效.实际上
source ~/.bash_profile 只生效一次 解决方案
在~/.zshrc文件最后,增加一行: source ~/.bash_profile
shell 点命令和source指令
1 shell脚本执行方法 有两种方法执行shell scripts,一种是新产生一个shell,然后执行相应的shell scripts:一种是在当前shell下执行,不再启用其他shell.新产生一个shell然后再执行scripts的方法是在scripts文件开头加入语句:#!/bin/sh.一般的script文件(.sh)即是这种用法.这种方法先启用新的sub-shell(新的子进程),然后在其下执行命令.另外一种方法就是上面说过的source命令,不再产生新的shell,而在当前she
shell中的 “.”和source export
在shell脚本里面export的环境变量,在set里面竟然看不到.为什么在shell脚本里面用export设置环境变量之后,当shell执行完了,用set命令看不到呢?但是你如果直接在终端里export 环境变量用set是看到的. 这里要说一下shell的执行方法了,举个例子来讲:一个shell脚本test.sh的内容为: export AA=123 当我们执行test.sh的时候,是当前终端所在的shell fork一个子shell然后执行test.sh的,执行完了再返回终端所在的shell
shell中的source和直接执行sh的区别
首先我们知道我们执行shell有这么几种方法 1. sh/bash使用其内置的命令集来执行一些命令,例如如下 sh demo.sh bash demo.sh 2. 使用./或者/$SHELLPATH/*.sh的方式执行 ./demo.sh /home/vagrant/shell/test.sh 采用上面的方法的话需要将该方法设置为有执行权限才能执行 3. 采用source shell.sh或者. shell.sh方法执行 source demo.sh . demo.sh 这三种方法的区别 1.文
学习 shell脚本之前的基础知识
转载自:http://www.92csz.com/study/linux/12.htm 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要
linux 学习随笔-shell基础知识
1:用户的shell历史命令保存在home/username/.bash_history中 #!! 执行用户的上一条命令 #!pw 执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个字符 '?’匹配一个字符 #ls -d Day* 列出Day开头,后面匹配所有字符的目录 #ls -d Day? 列出Day开头,后面匹配一个字符的目录 3:>> 在文件中追加重定向 > 在文件中重定向 4:| 管道符 #cat /etc/passwd|wc -l cat /etc/pass
Shell 编程
Shell 是一门脚本语言(又称解释型语言),Shell 其实就是一个纯文本文件,通常以[#!/bin/bash]开始.脚本自上而下,从左至右分析并执行,其中[#]后面的为注释.脚本有以下几种运行方式:(1) [bash shell.sh] (2)[sh shell.sh](3)[./shell.sh]当前目录下执行,用户必须有可执行权限 (4)[. ./shell.sh]或[source shell.sh]无执行权限也能执行,[source]一般用于读取配置文件使其立即生效. 第一个 Shel
linux 学习10 shell 基础
10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一些程序. Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强.Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令. .Shell的分类 Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名
Linux学习笔记(16)shell基础之Bash变量
1. 用户自定义变量 (1)变量设置规则 ① 变量名称可由字母.数字和下划线组成,但不能以数字开头: ② 变量的默认类型为字符串类型,如果要对数值运算,则必须指定变量类型为数值型: ③ 变量用等号连接值,且等号两侧不能有空格: ④ 变量的值如果有空格,需使用单引号或双引号括起: ⑤ 变量的值中,可使用"\"转义符: ⑥ 如果需要增加变量的值,可以进行变量值的叠加,不过变量需要用双引号包含,即"$变量名",或者用${变量名}包含: ⑦ 如果是把命令的结果作为变量值赋予
shell脚本学习(一)
Shell脚本最常用于系统管理工作,或者用于结合现有的程序以完成小型.特定的工作. Shell的特点有: 1. 简单性 2. 可移植性 3. 开发容易 [什么是shell] 简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了.打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些.回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指
学习shell之前你不得不了解的小知识
1.!!命令 # 表示上一条输出history |grep 23 #表示历史记录中的第23条!vim #上一条vim记录alias music='cat test' #表示别名unalias music #表示取消别名* #匹配一个或零个或多个字符? #匹配一个字符|
linux中shell编程
shell编程 1 echo -e 识别\转义符 \a \b \t \n \x十六进制 \0八进制 等等 #!/bin/bash echo -e "hello world" 执行脚本:方式1 :chmod 755 hello.sh ./hello.sh 方式2 :bash ./hello.sh(这种方式不需要给执行权限) 1 历史命令 history 直接回车就可以看到已经敲过得命令.-c清空缓存中和文件中的命令 -w将缓存中命令写入 家目录/.bash_history 这个命令可以帮
Linux 环境变量和source命令 (转)
可能是班门弄斧了,仅share给尚不知道的童鞋. 1. 问题的来源: 为什么我们编译Android代码时,需要输入: source ./build/envsetup.sh 或者 . ./build/envsetup.sh哪? (这里的source和.的作用是一致的), 为什么不可以直接执行envsetup.sh脚步而需要通过source命令执行哪? 2. Linux 环境变量的机制 Linux的环境变量是存储于RAM中的,每个Process启动时,OS会往Process
linux + shell 命令等
Linux命令[注意:建议用UltraEdit打开] 一.文件处理命令 1.命令格式与目录处理命令 ls –a[查看隐藏文件] ls –l[查看文件信息长格式显示] ls –d[查看指定目录的详细信息] ls –h[显示容量大小] ls –i[查看任何文件的I 节点] ll 文件名[查看一个文件的详细信息] 2.目录处理命令 mkdir –p[递归创建目录] cd[切换指定目录] pwd[显示当前目录] rmdir[删除空目录] cp[复制文件到某个目录下] cp –r[复制目录] cp –p[
Linux学习 -- Shell基础 -- Bash变量
变量 默认是字符串型,数值型需要显示指定 等号两侧都不能有空格 单引号:原始字符串 双引号:保留转义 命令结果作为值:反引号 或 $() 环境变量一般用大写 自定义变量 变量定义 name="xx oo" 变量叠加 aa=123 aa="$aa"456 aa=${aa}789 变量调用 echo $aa 变量查看 set 变量删除 unset aa 环境变量 用户自定义变量 -- 只在当前Shell中生效 环境变量 -- 当前S
几个常用的linux快捷键和shell知识
1) !$ !$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串.如:你可能会这样: $mkdir mydir $mv mydir yourdir $cd yourdir 可以改成: $mkdir mydir $mv !$ yourdir $cd !$ 2) sudo !! 以root的身份执行上一条命令 . 场景举例:比如Ubuntu里用apt-get安装软件包的时候是需要root身份的,我们经常会忘记
在shell脚本中使用alias
Linux shell有交互式与非交互式两种工作模式.我们日常使用shell输入命令得到结果的方式是交互式的方式,而shell脚本使用的是非交互式方式. shell提供了alias功能来简化我们的日常操作,使得我们可以为一个复杂的命令取一个简单的名字,从而提高我们的工作效率.在交互式模式下,shell的alias扩展功能是打开的,因此我们可以键入自己定义的alias别名来执行对应的命令. 但是,在非交互式模式下alias扩展功能默认是关闭的,此时仍然可以定义alias别名,但是shell
sed命令详解 vim高级技巧 shell编程上
第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 103,Alex,COO 104,yy,CFO 105,feixue,CIO 1.1.2 grep方法 [root@znix ~]# grep -v "oldboy" person.txt 102,zhangyao,CTO 103,Alex,COO 104,yy,CFO 105,feixue,
热门专题
maven dependencies灰色
nginx rtmp监控
oracle 查询语句 无效的列类型
viso 图形 在word中显示 右边不完整
cout保留小数 切换
pillow已安装为啥还提示要安装pil
flowable实现接口动态选择人
C# 指定ip发送 WebReference
m2pcie30或者40啥意思
promise.allsettled then 没执行
unity hub3破解
sqlite3 生成ERD图
cursor 函数 连接 数据库
es 聚合 特殊missing
matlab三个数字乘矩阵
git cherrypick和rebase区别
微信小程序 watch
bootstrap 登陆页面
微软会在ofdice中使用python吗
aiohttp 依赖安装不上