linux shell脚本 cd,shell脚本的cd问题

前段时间看学到一条命令:mkdir -p "$@" && eval cd "\"\$$#\"";来实现创建新目录

并切换到新目录底下,今天测试了一下,达不到目的。怎么cd都达不到目的。

后来在网上搜了一下:

讲到shell执行命令时,开启一个子shell,子shell运行完退到父shell环境下。

那么确实在脚本里面用实现切换到一个新建的目录,该如何操作?

把创建和切换放在( )里面,整个在“同一”个子进程里面执行。

如果测试  mkdir   directory ;  cd   directory ;  touch  file1 ; ls  -al 这几个命令的话,有无()

不会造成影响,如此说来shell脚本里面的命令打开的应该是同一个子shell。

补充:首先看一下命令本身的区别

[root@acer shell_learning]# type   cd

cd is a shell builtin

[root@acer shell_learning]# type   mkdir

mkdir is hashed (/bin/mkdir)

[root@acer shell_learning]# type   if

if is a shell keyword

[root@acer shell_learning]# type   while

while is a shell keyword

[root@acer shell_learning]# type   top

top is /usr/bin/top

再就是检测进程的变化:

阅读(3716) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值