我已经将一些脚本从ksh迁移到了bash,我在bash中观察到了非常奇怪的行为.我能够减少到一个非常短的片段.
echo first test
LC_ALL=C xclock &
Active_pid=$!
sleep 1
kill -9 $Active_pid
sleep 1
echo second test
LC_ALL=C xclock &
Active_pid=$!
sleep 1
trap "echo Signal SIGKILL caught" 9
kill -9 $Active_pid
sleep 1
Run Code Online (Sandbox Code Playgroud)
输出是
first test
./mig_bash.sh: line 15: 4471 Killed LC_ALL=C xclock
second test
Run Code Online (Sandbox Code Playgroud)
我的问题是在第一次测试中产生了迹线.我试图看看是否收到了信号.通过反复试验,我写了"第二次测试"来解决我的问题.我不明白.如何在不执行的情况下删除第一个测试的跟踪echo Signal SIGKILL?
我完全迷失了.
我想确保目录树中的正确权限(目录为0755,文件为644).这是我的班级:
package NRF_Utils;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import static java.nio.file.FileVisitResult.*;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Set;
import java.util.logging.Logger;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
public class DirectoryTreeOperations {
private static final Logger log = Logger.getLogger("spv." + DirectoryTreeOperations.class.getName());
public static boolean setPermissions(String root, String directoryPermissions, String filePermissions) {
boolean result = true;
//declaring the path to delete
final Path path = Paths.get(root);
final Set<PosixFilePermission> dirPermissions = PosixFilePermissions.fromString(directoryPermissions);
final Set<PosixFilePermission> filPermissions = PosixFilePermissions.fromString(filePermissions);
try {
Files.walkFileTree(path, new FileVisitor<Path>() …Run Code Online (Sandbox Code Playgroud)