source改变当前路径

转摘自:http://hi.baidu.com/homappy/item/90e416525d2faf958c12edb7

Shell 脚本执行有三种方法

  bash 脚本名

  sh 脚本名

  chmod +x 脚本名

  使用下面语句测试

  #a.sh(扩展名可不要)

  cd /

  pwd

  echo "complete"

  然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。
输出结果:
[fedora@localhost ~]$ bash a.sh

  /

  complete

  [fedora@localhost ~]$

  原因分析:

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

  解决方法:

  法一:

  用 source a.sh就行了。

  法二:

  [fedora@localhost ~]$ cd ~

  [fedora@localhost ~]$ chmod u+x a.sh

  [fedora@localhost ~]$ . ./a.sh

  /

  complete

  [fedora@localhost /]$

  对于 $ . ./a.sh

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

  后面的“./a.sh”是命令的参数,即要执行的脚本

  注:两点之间要有空格。


补充:

source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。
                
source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中配置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 等等。

例如,假如在登录后对.bash_profile 中的 EDITER 和 TERM 变量做了修改,则能够用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。


.bash_profile 或其它类似的Shell脚本这样,文件无需可执行权限即可用source或点命令执行。


比如您在一个脚本里export $KKK=111 ,假如您用./a.sh执行该脚本,执行完毕后,您运行 echo $KKK,发现没有值,假如您用source来执行 ,然后再echo,就会发现KKK=111。


因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同他就是在本shell中执行的,所以能够看到结果。

source命令的一个妙用

在编译核心时,常常要反复输入一长串命令,如
make mrproper
make menuconfig
make dep
make clean
make bzImage
.......
这些命令既长,又繁琐。而且有时候容易输错,浪费你的时间和精力。如果把这些命令做成一个文件,让它自动按顺序执行,对于需要多次反复编译核心的用户来说,会很方便。用source命令可以办到这一点。它的作用就是把一个文件的内容当成是shell来执行。先在/usr/src/linux-2.4.20目录下建立一个文件,取名为make_command:
在其中输入如下内容:
make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImge /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v
文件建立好之后,以后每次编译核心,只需要在/usr/src/linux-2.4.20下输入
source make_command
就行了。这个文件也完全可以做成脚本,只需稍加改动即可。这里主要是让大家理解source的用法。如果你用的不是lilo来引导系统,可以把最后两句话去掉。配置你自己的引导程序来引导新内核。

shell编程中的命令有时和C语言是一样的。&&表示与,||表示或。把两个命令用&&联接起来,如make mrproper && make menuconfig,表示要第一个命令执行成功才能执行第二个命令。对执行顺序有要求的命令能保证一旦有错误发生,下面的命令不会盲目地继续执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置Python环境变量并改变当前的Python版本,可以按照以下步骤进行操作: 1. 下载Python:首先,你需要下载并安装所需版本的Python。你可以从Python官方网站(https://www.python.org/downloads/)下载适合你操作系统的Python安装程序。 2. 安装Python:运行下载的Python安装程序,并按照提示进行安装。在安装过程中,记住选择将Python添加到系统路径中。 3. 配置环境变量:打开控制面板,点击"系统和安全",然后选择"系统"。在左侧导航栏中,点击"高级系统设置"。在弹出的对话框中,点击"环境变量"按钮。 4. 添加Python路径:在"用户变量"或"系统变量"部分中,找到名为"Path"的变量,并点击"编辑"按钮。在弹出的对话框中,点击"新建"按钮,并输入Python的安装路径(例如:C:\Python39)。点击"确定"保存更改。 5. 验证安装:打开命令提示符(或终端),输入"python"命令,并按下回车键。如果成功显示Python版本信息,则表示配置成功。 改变当前的Python版本可以使用虚拟环境(virtualenv)来实现。虚拟环境可以创建一个独立的Python环境,使你能够在同一台机器上同时管理多个Python版本。 以下是使用虚拟环境改变当前Python版本的步骤: 1. 安装虚拟环境:在命令提示符(或终端)中运行以下命令安装虚拟环境: ``` pip install virtualenv ``` 2. 创建虚拟环境:在命令提示符(或终端)中,进入你想要创建虚拟环境的目录,并运行以下命令创建虚拟环境: ``` virtualenv myenv ``` 3. 激活虚拟环境:在命令提示符(或终端)中,运行以下命令激活虚拟环境: - Windows: ``` myenv\Scripts\activate ``` - macOS/Linux: ``` source myenv/bin/activate ``` 4. 安装其他Python版本:在激活的虚拟环境中,使用pip安装其他版本的Python。例如,要安装Python 3.8,运行以下命令: ``` pip install python==3.8 ``` 5. 验证Python版本:在激活的虚拟环境中,运行以下命令验证Python版本: ``` python --version ``` 6. 切换Python版本:如果你想切换到其他已安装的Python版本,可以重复步骤4和5。 7. 退出虚拟环境:在激活的虚拟环境中,运行以下命令退出虚拟环境: ``` deactivate ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值