首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将/bin/bash -l -c与串联命令一起使用不会传递环境变量

将/bin/bash -l -c与串联命令一起使用不会传递环境变量。

/bin/bash -l -c是一个命令行参数,用于在Linux系统中执行一个命令。它的作用是以登录shell的方式执行命令,并且会加载登录shell的配置文件,如~/.bash_profile或~/.bashrc。

串联命令是指将多个命令通过特定的符号连接起来依次执行,常见的符号有分号(;), 逻辑与(&&), 逻辑或(||)等。

当/bin/bash -l -c与串联命令一起使用时,由于每个串联的命令都会被解析为一个独立的子进程,所以环境变量不会被传递给后续的命令。

这意味着,如果在第一个命令中设置了某个环境变量,后续的命令将无法访问到该环境变量。这可能会导致后续命令无法正常执行,或者无法获取到正确的环境配置。

为了解决这个问题,可以使用其他方式来传递环境变量,例如使用export命令将环境变量导出到当前shell的环境中,或者使用source命令在当前shell中执行脚本文件,以确保环境变量的正确传递。

总结起来,/bin/bash -l -c与串联命令一起使用不会传递环境变量,需要使用其他方式来确保环境变量的正确传递。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

学习笔记0402----shell基础知识

8.4 uniq 去重 8.5 tee 重定向,并且把文件内容打印到屏幕上 8.6 tr 替换字符 8.7 split 一个大文件分割成很多个小文件 9.特殊符号 1.环境变量 2.sourceexec...,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量应用于登录到系统的每一个用户。...--version 显示版本信息 8.3 wc 统计 参数 -c 统计字节数。 -l 统计行数。 -m 统计字符数。这个标志不能与 -c 标志一起使用。 -w 统计字数。...8.7 split 一个大文件分割成很多个小文件 参数 -b:值为每一输出档案的大小,单位为 byte。 -C:每一输出档中,单行的最大 byte 数。 -d:使用数字作为后缀。...2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export

72050
  • Linux进程控制【进程程序替换】

    ,就能实现各种指令 进程程序替换图解 Linux 中的指令都是用 C语言 写的可执行程序,所以可以进行替换 bash 运行后,输入 指令 本质上就是在进行程序替换 关于简易版 bash 的实现方法,...程序能继承 bash 中的环境变量表了 在 bash 下执行程序,等价于在 bash 下替换子进程为指定程序,并将 bash 中的环境变量表 environ 传递给指定程序使用 其他没有带 e 的替换函数...,默认传递当前程序中的环境变量表 2.6、函数6 execve execve 是系统真正提供的程序替换函数,其他替换函数都是在调用 execve 比如 execl 相当于链式信息转化为 argv 表...因为不论什么语言最终都需要调用系统级接口,比如文件流操作中的 open、close、write 等函数,无论什么语言的文件流操作函数都需要调用它们 ---- 2.7、函数7 execvpe 对 execvp 的再一层封装,使用方法...l 即 list,列表传递 v 为 vector,顺序传递 p 表示 PATH,根据程序名自动在 PATH 中查找 e 则是 environ,是否手动传递环境变量表 3.2、替换现象 子进程程序替换后

    24820

    【linux命令讲解大全】176.深入了解shutdown和sudo命令的用法和设置

    语法 sudo(选项)(参数) 选项 -b:在后台执行指令; -E:继承当前环境变量 -h:显示帮助; -H:HOME环境变量设为新身份的HOME环境变量; -k:结束密码的有效期限,也就是下次再执行...sudo时便需要输入密码; -l:列出目前用户可执行无法执行的指令; -p:改变询问密码的提示符号; -s:执行指定的shell; -u:以指定的用户作为新的身份。...是/bin/bash,则会加载/root/.bashrc等配置。...如果真选择Q,那么sudo将不会再运行,直到错误被纠正。 现在,我们一起来看一下神秘的配置文件,学一下如何编写它。...因为考虑到安全问题,一部分环境变量并没有传递给sudo后面的命令,或者被检查后再传递的,比如:PATH,HOME,SHELL等。当然,你也可以通过sudoers来配置这些环境变量

    23510

    shell_环境变量_常量_位置变量_运算(3)

    文章目录 保存永久环境变量 常量 位置变量 ln -s 源文件 连接文件 ls |wc -l pidof shift $?....短暂的环境变量:   直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】   在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell...显示输入的所有的变量 1. $* 传递给脚本的所有参数,全部参数合为一个字符串 2. $@ 传递给脚本的所有参数,每个参数为独立的字符串;脚本嵌套脚本使用 区别 : ex:.../f1.sh a b c >#f1.sh arg is a b c >#f2.sh arg is a b c $*换成$@时 >#f2.sh arg is.../bin/bash echo "name=$name" 显示进程树 ----bash----f1.sh f1.sh为bash的子进程,局部变量间的父子变量不可相互影响 不可相互传递

    66130

    7.管道、管道、环境变量与其他常用命令

    管道右边的命令必须能接受 stdin。 多个管道命令可以串联文件重定向的区别: 文件重定向左边为命令,右边为文件。 管道左右两边均为命令,左边有 stdout,右边有 stdin。...-name '*.py' | xargs cat | wc -l xargs 可以 stdin 转化为 cat 命令的参数。...为了将对环境变量的修改应用到未来所有环境下,可以修改命令放到~/.bashrc文件中。...修改完~/.bashrc文件后,记得执行source ~/.bashrc,来修改应用到当前的bash环境下。 为何修改命令放到~/.bashrc,就可以确保修改会影响未来所有的环境呢?...free -h:查看内存使用情况 du -sh:查看当前目录占用的硬盘空间 ps aux:查看所有进程 kill -9 pid:杀死编号为pid的进程 传递某个具体的信号:kill -s SIGTERM

    64530

    如何编写一个shell脚本

    下面,让我们一起来看看shell是如何工作的:  建立一个脚本  Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash...我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。   ...常用命令语法及功能  echo "some text": 文字内容打印在屏幕上  ls: 文件列表  wc –l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数...这里有个问题,那就是我们必须有两个命令: -打印错误信息-退出程序   我们使用花括号以匿名函数的形式两个命令放到一起作为一个命令使用。一般函数将在下文提及。  ...循环完成之后,我们原始文件命名为文件1同时建立一个原始文件同名的空文件。   调试  最简单的调试命令当然是使用echo命令。您可以使用echo在任何怀疑出错的地方打印任何变量值。

    1.7K40

    【linux命令讲解大全】184.Linux 命令行教程之 sudo 命令详解

    语法 sudo [options] [command] 选项 -b:在后台执行指令; -E:继承当前环境变量; -h:显示帮助; -H: HOME 环境变量设为新身份的 HOME 环境变量; -k:结束密码的有效期限...,也就是下次再执行 sudo 时便需要输入密码; -l:列出目前用户可执行无法执行的指令; -p:改变询问密码的提示符号; -s:执行指定的 shell; -u:以指定的用户作为新的身份...超级用户的 SHELL 是 /bin/bash,则会加载 /root/.bashrc 等配置。...如果真选择 “Q”,那么 sudo 将不会再运行,直到错误被纠正。 现在,我们一起来看一下神秘的配置文件,学一下如何编写它。...因为考虑到安全问题,一部分环境变量并没有传递给 sudo 后面的命令,或者被检查后再传递的,比如:PATH、HOME、SHELL 等。当然,你也可以通过 sudoers 来配置这些环境变量

    56010

    进程控制第二弹(进程程序替换)

    调用exec并不创建新进程,所以调用exec前后该进程的id并未改变 我们知道,进程=内核数据结构+代码数据 程序替换的本质是当前进程的代码和数据进行替换。 替换的时候,会不会创建新的进程?...需要执行的路劲,需要带路劲 后面的参数:在命令行中怎么执行 例如: execl("/usr/bin/ls","ls","-l","-a",NULL); execv execv(const char...<<endl; return 0; } 运行结果: 结论:我们平时自己运行的程序,命令行参数和环境变量是父进程给你的,父进程自己有一个环境变量表,创建子进程时把对应的信息传递给子进程...父进程本身就有一批环境变量,从“爷爷进程”来的,即bash 这个传参,如果传的是自定义的环境变量,那么就整体替换所有环境变量环境变量有三种情况: 用全新的给子进程 用老的环境变量给子进程,environ...老的环境变量稍作修改,传递给子进程 总结

    8510

    shell编程基础

    shell命令shell定义Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。.../bin/bashecho "hello, shell"让shell找到你写的文件,有两种方式:1) shell脚本文件所处的目录添加到PATH环境变量中;2) 在提示符中用绝对或相对文件路径来引用shell.../bin/bashnum=123echo "$num"echo "${num}"只读变量:使用 readonly 命令可以变量定义为只读变量,只读变量的值不能被改变。#!...$-显示Shell使用的当前选项,set命令功能相同。$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。#!...在函数中使用变量函数可以使用标准的参数环境变量来表示命令行上传给函数的参数。例如,函数名会在\$0变量中定义,函数命令行上的任何参数都会通过\$1、\$2等定义。

    77130

    shell语法简单介绍

    我们不正确环境变量进行讨论,由于通常情况下只在登录 脚本中使用环境变量。 二、概念: 管道, 重定向和 backtick 这些不是系统命令,可是他们真的非常重要。...反短斜线 使用 反短斜线 (“ ` “)能够一个命令的输出作为另外一个命令的一个命令行參数。 命令: find ....这里有个问题,那就是我们必须有两个命令: -打印错误信息 -退出程序 我们使用花括号以 匿名函数 的形式两个命令放到一起作为一个命令使用。一般函数将在下文提及。...脚本首先在全部输入命令行參数中进行循环,输入參数 case表达式进行比較,假设匹配则设置一个变量而且移除该參数。...关于linux命令的具体内容请參考《Linux命令简单介绍》 经常使用命令语法及功能 echo “some text”: 文字内容打印在屏幕上 ls: 文件列表 wc –l filewc

    54610

    第十六章 Shell编程

    /bin/bash ---指定编译本脚本的shell echo hello ---输入多条命令 ls -l /var/ echo over 以上就是一个脚本的最简单的案例.../bin/bash一般必须书写,至于后面的命令,可以根据个人需求自定义编写。...图中可见,通过命令更改了PS1变量的值,立即生效了,但输入bash命令后,等于有重新打开了一个shell,该shell嵌套于原shell之外,环境变量并未改变。...其实,每个shell都会有自己一套完整的、独立的环境变量配置,当打开一个新shell时,所有的环境变量按系统的默认值初始化,所以新开shell不会受原shell的影响。.../bin/bash jiaFa(){ letres=$1+$2 #使用参数,进行计算,参数调用方给定的一一对应 echores=$res } shu1

    1.1K51

    Linux系统Bash的常用功能

    bash还具备记录命令、文件或命令的补全功能、环境变量使用等,下面我们会介绍bash的发展以及常用的特性.本章的内容,是一个呈上启一下的东西,在以后的主机维护中作用很大,务必掌握.硬件内核Shell...ctrl+E光标移动到命令结尾ctrl+C强制终止当前命令ctrl+L清屏ctrl+U删除或剪切光标之前的命令ctrl+K删除或剪切光标之后的命令ctrl+Y粘贴,ctrl+U或ctrl+K的内容ctrl...#统计单词数(字符串) -l #统计行数◆uniq 取消重复行◆uniq命令用于报告或忽略文件中的重复行,一般sort命令结合使用....,paste是直接两个文件贴在一起,且中间以TAB隔开而已....#以行数来进行切割◆xargs 代数转换◆xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具,它擅长标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令命令参数

    3.2K30

    Linux基础(五)

    ,我们能够得出:./ /bin/bash source三种执行方式的不同 ./ /bin/bash 都是新开进程,进行执行,此时本地变量不会被继承,不改变当前环境,通常用于执行脚本文件 source...则是子进程放到父进程进行执行,影响当前环境,常用于读取配置文件 5、bash中变量分类、 本地变量(普通变量):生效范围为当前shell,对当前shell之外的其他shell进程,包括当前shell...EXPRESSION 必须使用测试命令进行 实例: #[ -f /bin/bin/cat -a -x /bin/cat ] && cat /etc/fstab 如何判断输入的是数字 方法一 m=10 expr...echo $b yyy -->echo $c zzz read m n l 12、bash中如何展开命令行 把命令行分成单个命令词 展开别名 展开大括号中的声明{} 展开波浪符声明~ 命令替换$()和`...:定义环境变量和开机启动项 source (.) scriptnaem 在当前shell执行*/ /bin/bash ./ 不开子进程执行 退出执行 /etc/bash_logout 退出的时候自动执行的文件

    1.2K80

    Bash 编程

    正则表达式匹配操作符字符串正则表达式进行比较,如果字符串正则表达式匹配,则表达式等价于true,否则等价于false。...现在我们开始使用source命令,它允许我们bash脚本中的函数定义作为命令命令使用 。...如果成功,这些命令不会打印任何值。 我们经常会编写函数来计算某个值,理解如何函数的结果存储在变量中以便以后使用是很重要的。...阅读小说相比,阅读诗歌会诱发不同的认知负荷。 那些不阅读程序源代码的人(大多数用户不会——他们不应该这样做)将能够更容易地理解程序的输入、输出和副作用。...环境变量 我们距离能够脚本和函数作为shell命令使用只有一步之遥,但是首先我们需要了解环境变量环境变量Bash创建的变量,用于存储关于当前计算环境的数据。环境变量名全部使用大写字母。

    4.4K30

    linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置查看

    当不带参数使用 set 命令时,它将打印出包括环境变量 Shell 变量在内的所有变量以及 Shell 函数的列表。...lxlinux.net env 命令可通过一组变量传递命令来修改程序运行的环境: env MYVAR=lxlinux.net command_to_run command_options printenv... env 命令只能打印出环境变量,而如果你想打印出所有变量或者 Shell 函数的列表,你可以使用 set 指令。...该命令显示一个包含所有变量的大列表,因此你可能会希望输出传递给 less 命令。...当不带参数使用 set 命令时,它将打印出包括环境变量 Shell 变量在内的所有变量以及 Shell 函数的列表。 unset — 该命令可以删除 Shell 变量以及环境变量

    20.8K20

    linux系统编程之进程(三):exec系列函数和system函数

    如果可执行文件不在PATH定义的路径上,就必须把包括子目录在内的绝对文件名做为一个参数传递给这些函数。 名字最后一个字母为"e"的函数可以自设环境变量。.../pid_env  hello pid=5597 TERM=vt100 SHELL=/bin/bash XDG_SESSION_COOKIE=0ba97773224d90f8e6cd57345132dfd0...; // 带l为可变参数     //  execvp("ls", args); //args数组参数传递给main     //  execv("/bin/ls", args);     int ret...三、system函数 功能:system()函数调用“/bin/sh -c command”执行特定的命令,阻塞当前进程直到command命令执行完毕 原型:  int system(const char...*command); 返回值:     如果无法启动shell运行命令,system返回127;出现不能执行system调用的其他错误时返回-1。

    2.2K60

    Shell脚本编程_shell简单脚本

    csh 完全兼容,提供更多的功能 /bin/csh #已经被 /bin/bash 所替换(整合 c shell,提供更多的功能) /sbin/nologin #奇怪的 shel1,这个 shell...命令错误:后续的命令还会继续执行,用 bash -n 无法检查出来 ,可以使用 bash -x 进行观察。 逻辑错误:只能使用 bash -x 进行观察。 2.2 脚本执行方法 相对路径执行( ....bash shell 中内置的变量,在脚本代码中调用通过命令传递给脚本的参数。...可以经常使用的函数存入一个单独的函数文件,然后函数文件载入 shell,再进行调用函数 文件名可任意选取,但最好相关任务有某种联系,例如:functions 一旦函数文件载入 shell,就可以在命令行或脚本中调用函数.../bin/bash ./$0|./$0& 2.12 一些脚本相关工具 (1) 信号捕捉 trap trap '触发指令' 信号 进程收到系统发出的指定信号后,执行自定义指令,而不会执行原操作 trap

    8K10

    Linux管道符、重定向环境变量

    输入ps aux 命令后屏幕信息呼呼闪过,根本找不到有用的信息。现在也可以ps、grep、管道符三者结合到一起使用了。...bash 如果需要将管道符处理后的结果既输出到屏幕,又同时写入到文件中,则可以 tee 命令结合使用 [root@servera ~]# ps aux | grep bash | tee read.txt...例如,反引号 uname -a 命令结合,然后使用 echo 命令来查看本机的 Linux 版本和内核信息: [root@servera ~]# echo uname -a uname -a [root...PATH是否多个路径值组成的变量,每个路径之间使用冒号 : 间隔。对这些路径的增加和删除操作影响到 Bash 解释器对 Linux 命令的查找。...我们可以使用 env 命令来查看 Linux 系统中所有的环境变量,比较重要的 10 个环境变量,如表所示。

    2.5K30
    领券