Đây là mã của tôi:đơn dòng lệnh if trong một kịch bản shell không làm việc
#!/bin/bash
cat input$1 | ./prog$1 > output$1 && if[ "$2" != "" ]; diff output$1 expected$1;
này sau đó sẽ xảy ra:
$ ./run.sh
./run.sh: line 2: if[ no != ]: command not found
$
Tôi nghĩ rằng tôi có thể chạy nếu phát biểu trên một dòng? vấn đề là gì?
Bạn có thể rút ngắn một chút: './prog$1 < input$1 > đầu ra $ 1 && [ "$ 2"= ""!] && diff đầu ra $ 1 dự kiến $ 1' –