linux下通过脚本切换当前工作目录

通过脚本切换工作目录,刚开始觉得很简单,直接在脚本中写一个cd语句就搞定了。

但是,其实不然。

执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录。

因此,当你写好了脚本,并且调用执行时,你的当前工作目录并没有变化。

那么,解决方案呢?

有两种方式解决(都是执行脚本的方式不同,脚本内容依然是一个cd语句。假定脚本为change.sh):

  1. source change.sh
  2. . ./change.sh

    第一个点是bash的内部命令,表示在当前shell中运行

    后面的“./change.sh”是命令的参数,即要执行的脚本(注:两点之间要有空格)

时间: 2024-08-08 09:42:01

linux下通过脚本切换当前工作目录的相关文章

linux下apache更换自己的工作目录

修改apache2的默认文档目录(默认是在/var/www) 修改命令:sudo gedit /etc/apache2/sites-enabled/000-default 在文档中找到 DocumentRoot 在后面修改你要放置网页文件的目录 修改完后重启apache2服务器即可,重启命令: sudo /etc/init.d/apache2 restart 在linux下开发html.php等程序时,默认要到/var/www目录下才能工作,而/var/www目录必须要有超级用户权限才能访问,还

linux下的cd 切换工作目录

linux下cd命令 功能:切换当前工作目录 使用格式:cd [目录名] (cd和目录之间使用空格隔开) 常用命令 1.进入用户主目录 cd cd $home cd ~ 上面三个命名都能实现进入用户主目录的任务 2.返回进入此目录之前所在的目录 cd - 3.返回上级目录 cd .. 若当前目录为"/",则执行完后还在"/": ".."为上级目录的意思 4.返回上两级目录: cd ../.. 5.转到系统根目录 cd / 例如:cd /home/

Linux下3G脚本拨号上网(转)

Linux下3G脚本拨号上网 (2010-7-5 13:08) 既然是拨号上网,就不能不提到ppp(point-to-point protocol)协议.ppp协议提供了一种通过串行点对点联接传输数据报的方式.它由三部份组成:一种在串行封装数据报的方式,扩展联接控制协议LCP,和用来建立和配置不同网络层协议的家族网络控制协议NCP.封装方案由内核驱动代码来提供.pppd(ppp daemon)提供基本的LCP,认证支持,和建立和配置IP的网络控制协议NCP.一个ppp会话分为四个步骤:连接建立.

Linux下shell脚本监控Tomcat的状态并实现自动启动

最近公司需要在Linux下监控tomcat的服务,一旦tomcat服务存在异常或者宕机,重启tomcat保证服务的正常运行,由于Linux下有Shell脚本可以实现此效果,下面是Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤. 1.编写Shell脚本monitor.sh #!/bin/sh # func:自动监控tomcat脚本并且执行重启操作# author:EagleHao# date:2018-04-08# DEFINE # 获取tomcat进程ID(其中[grep

linux下shell脚本执行方法及exec和source命令

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. bash shell的命令分为两类:外部命令和内部命令.外部命令是通过系统调用或独立的程序实现的,如sed.awk等等.内部命令是由特殊的文件格式(.def)所实现,如cd.history.exec等等. 在说明exe和source的区别之前,先说明一下fork的概念. fork是linux的系统调用,用来创建子进程(child

linux下shell脚本执行jar文件

最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚本 上面是小弟写的shell脚本.写的不好请见谅. 首先遇到的第一个坑 我在window下写的 然后道linux中执行,在linux死活都说俺的19行有错误,俺就不明白了,哪里有错,问了下别人,也说没错.突然有个高人问我在哪编写的,小弟回答在win下,他告诉俺执行下这个命令: dos2unix se

Linux下Shell脚本输出带颜色文字

Linux下Shell脚本输出带颜色文字 文本终端的颜色可以使用"ANSI非常规字符序列"来生成. 举例:    "echo -e \033[44;37;5m BLUE \033[0m" "echo -e \033[44;37;5m BLUE \033[0m BLACK" 需要修改的地方是红色带下划线的部分,其中[***m部分的内容换成下面的数字,后面的内容是自己想要上色的内容. 以上命令设置作用如下:背景色为蓝色,前景色为白色,字体闪烁,输出字

linux下shell脚本在其他目录执行

eg: 比如说在linux下运行rails自带的服务器时,需要这样的命令RAILS_EVN=production rails s是不是有点啰嗦呀,每次要打这么多字,不能忍,万幸的是我们有shell脚本的帮助.建立一个自己的脚本吧: touch 一个rails_s.sh然后用vim编辑如下,保存. #!/bin/bash RAILS_EVN=production rails s 执行以下命令: echo $PATH 显示路径信息如下: [email protected]:~/Downloads/s

Linux下设置脚本监控tomcat

前景描述,公司要求,在Linux Centos 服务器下,监控tomcat状态,如果tomcat端口不通,设置tomcat程序自动启动.20分钟检查一次. tomcat安装的目录:/home/test/tomcat6/bin #!/bin/bash echo "Start" URL="http://127.0.0.1/###/" curlit() { #echo "??" curl --connect-timeout 15 --max-time