我坚持在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脚本调用创建一个新的过程,因此一个新的上下文。
希望这有助于。
总结以上是内存溢出为你收集整理的更改目录在shell脚本中不起作用全部内容,希望文章能够帮你解决更改目录在shell脚本中不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)