我试图从 A 路径更改为 B 路径时的目录,如下所示
pwd|awk '{if($1=="/") cd /tmp/}'
awk: syntax error near line 1
awk: illegal statement near line 1
Run Code Online (Sandbox Code Playgroud)
请建议
您可以使用system()
inawk
来运行任何命令,但不能使用它来更改目录,因为它在子 shell 中运行该命令,因此您将在子 shell 中更改目录,该子 shell 将立即退出。命令如下:
pwd|awk '$0 == "/"{system("cd /tmp")}'
Run Code Online (Sandbox Code Playgroud)
但正如我所说,这是行不通的。如果您echo
在命令前面添加,您可以看到它实际上也在您期望的时候运行:
$ cd /
$ pwd|awk '$0 == "/"{system("echo cd /tmp")}'
cd /tmp
$ cd /home
$ pwd|awk '$0 == "/"{system("echo cd /tmp")}'
Run Code Online (Sandbox Code Playgroud)
我认为最好只使用和if
声明:
if [ "${PWD}" = '/' ];then
cd /tmp
fi
Run Code Online (Sandbox Code Playgroud)