微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改目录在shell脚本中不起作用

我坚持在Linux中更改shell脚本中的目录。

#!/bin/sh cd /driver

以上不会改变目录。 shell运行在自己的上下文,所以它不能提供Linuxterminal更改驱动器(到驱动程序)

但是如果我给CD /驱动程序ls它给驱动程序目录中的ls正确的输出再次出来的driver directory

任何人都可以帮助我实际上改变path(into driver) 。

计算克隆函数的可变参数的数量

试图运行一个bash脚本来源于另一个脚本运行的源代码

我怎样才能找出一个linux命令完全是什么?

logging器在Linux应用程序中的build议

运行“最后的”Linux命令

为什么函数在x86 Linux的alignment地址加载elf可执行文件

有没有Unixconfiguration文件的指导方针

多行复制粘贴到mongo shell

使用mailx和bash脚本parsing邮件正文

mmap总线错误通过2Gb写入MAP_SHARED文件

如果你运行你的脚本

./scriptname

你打开一个执行脚本命令的子shell。 在该子shell中更改目录对您调用脚本的shell的工作目录没有影响。 如果你输入

source ./scriptname

你应该得到想要的结果。

做“源script_name”。 它会改变目录

设置目录后,可以在脚本中启动一个shell或终端。

如下所示:

文件:驱动程序,记得设置x权限

#!/bin/bash cd /driver bash

正在运行的驱动程序将产生另一个shell提示

当前目录是现在的驱动程序。

键入“exit”或者control-D会返回到原来的shell和前一个目录。

你的脚本是一个可执行文件

#!/bin/sh cd /driver

删除#!/bin/sh

cd /driver

只要验证上述问题的根本原因,您可以执行以下操作

创建一个像 –

read a echo "You entered : $a"

保存它(比如script.sh),并根据需要更改权限。

在相同的标签中运行'ps'命令并注意shell的pid(比如说p1)。

现在运行脚本(即./script.sh)

脚本将要求输入,但不提供输入。 现在在另一个选项卡中运行如“ps -ef |” grep pts'。 在这里你会发现有两个shell进程。 你有一个shell的ppid等于前一个shell的pid,即p1。

所以基本上每个shell脚本调用创建一个新的过程,因此一个新的上下文。

希望这有助于。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐