次のように、ディレクトリをAパスからBパスに変更しようとしています。
pwd|awk '{if($1=="/") cd /tmp/}'
awk: syntax error near line 1
awk: illegal statement near line 1
提案してください
ベストアンサー1
system()
inを使用してすべてのコマンドを実行できますが、サブシェルawk
でコマンドを実行するため、ディレクトリを変更するために使用することはできません。したがって、サブシェルのディレクトリを変更すると、サブシェルはすぐにシャットダウンされます。コマンドは次のとおりです。
pwd|awk '$0 == "/"{system("cd /tmp")}'
しかし、私が言ったように、これはうまくいきません。コマンドの前に以下を追加すると、期待echo
どおりに実際に実行されていることがわかります。
$ cd /
$ pwd|awk '$0 == "/"{system("echo cd /tmp")}'
cd /tmp
$ cd /home
$ pwd|awk '$0 == "/"{system("echo cd /tmp")}'
私は単に使用してif
宣言する方が良いと思います。
if [ "${PWD}" = '/' ];then
cd /tmp
fi