我坚持在Linux中更改shell脚本中的目录。
#!/bin/sh cd /driver
以上不会改变目录。 shell运行在自己的上下文,所以它不能提供Linuxterminal更改驱动器(到驱动程序)
但是如果我给CD /驱动程序ls它给驱动程序目录中的ls正确的输出再次出来的driver directory
任何人都可以帮助我实际上改变path(into driver) 。
我怎样才能找出一个linux命令完全是什么?
logging器在Linux应用程序中的build议
运行“最后的”Linux命令
为什么函数在x86 Linux的alignment地址加载elf可执行文件?
多行复制粘贴到mongo shell
使用mailx和bash脚本parsing邮件正文
如果你运行你的脚本
./scriptname
你打开一个执行脚本命令的子shell。 在该子shell中更改目录对您调用脚本的shell的工作目录没有影响。 如果你输入
source ./scriptname
你应该得到想要的结果。
做“源script_name”。 它会改变目录
设置目录后,可以在脚本中启动一个shell或终端。
如下所示:
文件:驱动程序,记得设置x权限
#!/bin/bash cd /driver bash
当前目录是现在的驱动程序。
键入“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] 举报,一经查实,本站将立刻删除。