当前位置:  技术问答>linux和unix

linux下执行sh -c cd /home 没有效果

    来源: 互联网  发布时间:2017-02-14

    本文导语:  我在linux下执行sh -c cd /home 执行后没效果, 如果执行sh -c cd /home|ls 看到的还是当前目录下的ls后的效果 sh -c "cd /home|ls" 这样子也不行 如果 sh -c cd xx 随便一个目录,也没有报错 求助:如果我想使用sh -c ...

我在linux下执行sh -c cd /home 执行后没效果,
如果执行sh -c cd /home|ls 看到的还是当前目录下的ls后的效果
sh -c "cd /home|ls" 这样子也不行
如果 sh -c cd xx 随便一个目录,也没有报错

求助:如果我想使用sh -c 进入目录,应该怎么操作呢,谢谢

|
一般用 ls -R 查看目录、子目录的内容
用sh -c 也可以
sh -c "cd /home; ls"


|
这肯定不行啊,你要知道你直接调用脚本执行是要创建子进程的,这样cd 是在子进程的改变,所以调用结束后返回父进程所以ls 的当前目录是父进程的当前目录,也就是你说的看到的还是当前目录下的ls后的效果。你可以用pwd在脚本中测试一下的。直接用shell程序执行和给一个文件+x 然后执行原理是一样的,都要创建子进程

但是source  和前两种不一样。他不会创建子进程,所以你可以得到你想要的结果。

下面以一个简单的shell 说明他们的一点区别

#!  /bin/bash

cd /tmp  # 当前目录不再这里;

echo  "hello  world";


第一种执行方式

zhanghong@ubuntu:~/shell$ ./echo.sh
hello  world
zhanghong@ubuntu:~/shell$ pwd
/home/zhanghong/shell

第二种

zhanghong@ubuntu:~/shell$ bash ./echo.sh
hello  world
zhanghong@ubuntu:~/shell$ pwd
/home/zhanghong/shell


第3中种

zhanghong@ubuntu:~/shell$ source ./echo.sh
hello  world
zhanghong@ubuntu:/tmp$ pwd
/tmp

|
sh -c cd /home 
这样是不行的,这样会启动一个新的shell执行那个cd操作,执行完成之后,shell就结束了,不会影响当前shell

    
 
 

您可能感兴趣的文章:

  • linux下通过crond实现自动执行程序
  • 菜鸟请教:linux 直接执行可执行文件
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • linux下不使用sudo命令执行docker的操作步骤
  • linux设备驱动执行完__init之后就执行__devinit吗
  • 很菜的问题——Linux(RedHat8)下的齿轮图标程序如何执行,是什么shell命令可以执行它?
  • 请问LINUX7.2下,哪条命令是查看系统上曾经执行过的执行命令?(包括启动以前的)
  • 如何用JAVA执行本机Linux操作系统的可执行文件?一定给分!在线等待!
  • linux shell脚本 linux crond 的一个鲜为人知的错误,单独执行没问题,放到crond 中就执行出错 试问高手们哪个环节出错
  • 入门的问题。在Linux上如何执行一个可以执行的文件?
  • Linux下的执行文件是什么概念,是象Dos里的2进制机器码吗,怎么看一个文件是不是执行文件. iis7站长之家
  • linux 中可执行程序执行时./a.out怎么去掉 "./" ? ? ?
  • 我需要一个模型,在 LINUX C 下。实现线程间的控制,执行,阻塞,再执行。。。。。不知道如何实现。
  • Linux下自动执行命令的问题,哪位Linux高手帮帮我.
  • 小弟刚学linux,问个超级幼稚的问题~-linux下怎么执行程序?
  • 可以让soleris下编译的可执行文件运行在linux下吗???
  • window下通过ftp执行linux脚本?
  • linux 下子线程不能执行的问题?
  • 我安装了个linux系统, 发现linux系统的显示器的显示有点小,于是我就在显示器上把大小调了一下,本想着这样会影响xp系统的显示效果,实际上没有应响xp的显示效果,这是为什么?
  • (初学): 怎样改善linux rh9的中文显示效果,能使它像windows效果一样?(在线等,急!!!!)
  • Linux酷桌面效果 KSmoothDock
  • 如何在linux下玩cs?效果如何?
  • linux下如何实现系统托盘的效果?如同屏幕下方的clock
  • 在LINUX下怎么用代码判断是否开启了3D效果
  • 如何达到我这种linux下的系统调用效果
  • Linux上,有没有效果类似ps命令的C函数?
  • linux 中,poweroff,halt,reboot 都是consolehelp 的软连接,可是,这些链接和后者的效果不一样,为何?
  • linux加入windows域 是什么意思?求详解,加入后的效果是怎么样的
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?
  • 我没有软驱,也没有LINUX的光盘,如何安装LINUX?
  • linux没有lilo命令阿,是不是表示没有 相关套件?我的下载吗,也没有RPM这个 命令,我该如何搞定他们出来
  • linux 下 没有aptitude,也没有 apt-get。
  • 有没有哪位知道linux下有没有什么可视聊天的工具
  • linux里有没有象vc那样的IDe啊,有没有类库什么的呢
  • linux没有conio.h,也没有直接写屏,怎样写全屏幕文本编辑器?
  • 为什么我装的linux老提示这个没有,那个没有?
  • 编了个Helloworld,在Linux下执行没有结果,可也没有报错,在gdb调试时却没问题,为什么.
  • 在linux redhat6.0中,进入x_window,请问系统有没有自带的c编译器,比如gcc;如果没有,那里可以下载并安装?
  • 没有LINUX经验如何获得一份LINUX工作
  • linux下的/urs/src目录里没有linux文件包该如何添加
  • 有没有在大连搞linux的,我想了解一下大连的linux情况!
  • 搞了几年软件开发,Linux没有摸过,请问安装Linux什么版本比较好
  • 以前没有接触过linux,现要在linux上写一个软件,请问我要看那些资料!
  • 我装的是fedora,但是没有内核开发的工具,在/usr/include/linux下面没有kernel.h和module.h文件。要装什么包?
  • Linux:为什么/lib/modules/linux/kernel文件夹里内容突然没有了
  • 请问现在LINUX下有没有类BORLAND C++BUILDER VISUAL C++这样的集成IDE环境,我记得以前BORLAND承诺会推出类似的开发环境,可是我没有发现
  • 我没有linux安装光盘!可不可以通过网络在我的电脑上安装一个linux操作系统!
  • LINUX 下使用QT开发的程序如何才能让它在没有安装QT的Linux系统下运行?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3