다음 bash 명령이 있습니다
diff <(xzcat file1.xz) <(xzcat file2.xz)
에서 실행해야 합니다 dash
. 내 시스템(Debian Wheezy)에서는 dash
cron이 기본 해석기입니다( /bin/sh
yes link /bin/dash
).
에서 명령을 실행하면 dash
다음 오류가 발생합니다.
Syntax error: "(" unexpected
답변1
cron 작업에서 무언가를 실행할 때 특정 셸이 필요한 경우 이를 스크립트로 래핑하고 cron에서 스크립트를 호출하세요.
#!/bin/bash
diff <(xzcat file1.xz) <(xzcat file2.xz)
시간 제한 작업 입구
* * * * * user-name /path/to/above/script.bash
답변2
예, 프로세스 교체는 ksh에서 시작된 비표준 기능이며 ksh, bash 및 zsh에서만 사용할 수 있습니다.
지원되는 시스템 /dev/fd/n
(예: Debian)에서는 다음을 수행할 수 있습니다.
xzcat < file1.xz | { xzcat < file2.xz | diff /dev/fd/3 -; } 3<&0
아니면 언제든지 다음과 같이 할 수 있습니다.
bash -c 'diff <(xzcat file1.xz) <(xzcat file2.xz)'
답변3
을 사용해야 하는 경우 dash
다음과 같이 작동합니다.
mkfifo file1
mkfifo file2
xzcat file1.xz >file1&
xzcat file2.xz >file2&
diff file1 file2
rm -f file1 file2 #remove the FIFOs