前段时间看学到一条命令: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
再就是检测进程的变化:
阅读(4386) | 评论(0) | 转发(0) |