我需要运行一个系统命令,该命令将转到目录并删除不包含文件的子目录(如果存在).我编写了以下命令来执行此操作:
system("cd /home/faizan/test/cache ; for i in *\; do if [ -d \"$i\" ]\; then echo \$i fi done");
Run Code Online (Sandbox Code Playgroud)
上面的命令不断引发语法错误.我尝试了多种组合,但仍然不清楚这应该如何.请建议.
好吧,您的命令行确实包含语法错误.试试这个:
system("cd /home/faizan/test/cache ; for i in *; do if [ -d \"\$i\" ]; then echo \$i; fi; done");
Run Code Online (Sandbox Code Playgroud)
或者更好的是,首先只覆盖目录;
system("for i in /home/faizan/test/cache/*/.; do echo \$i; done");
Run Code Online (Sandbox Code Playgroud)
或者更好的是,没有循环:
system("echo /home/faizan/test/cache/*/.");
Run Code Online (Sandbox Code Playgroud)
(我想你会想要rmdir而不是echo一次正确调试.)
或者更好的是,在Perl中完成所有工作.这里没有什么需要system().