Lệnh LS xuất ra tệp [đã đóng]


8

Tôi muốn chụp vào một tập tin đầu ra của lệnh ls

ls >> lsOutput.log

Cái này hoạt động nếu được thực thi trong dòng lệnh. Nhưng khi được đặt trong shell script ( lsOutput.sh), trả về

./lsOutput.sh: 3: ./lsOutput.sh: total: not found

lsOutput.sh

#!/bin/sh

`ls -lrt` >> lsOutput.log

Các backticks xung quanh lệnh trong kịch bản làm cho nó có nghĩa là một cái gì đó rất khác so với lệnh đơn giản chạy từ dòng lệnh.
vonbrand

Câu trả lời:


9

Chỉ cần xóa backticks khỏi tập lệnh của bạn:

#!/bin/sh

ls -lrt >> lsOutput.log

Mặt khác, lệnh được thực thi, và sau đó đầu ra của nó được thay thế và thực thi.

Ví dụ:

echo date

sẽ xuất ra : date, trong khi

`echo date`

sẽ đưa ra ngày hiện tại, tức là trước tiên nó sẽ đánh giá datevà sau đó thực hiện, đang gọi datechính chương trình đó.


Xin chào .. Cảm ơn aularon. Nó đã làm việc! Cảm ơn bạn rất nhiều!
dùng60216

Xin chào auloran, có lẽ bạn cũng có thể giúp tôi với câu hỏi này: unix.stackexchange.com/questions/117609/ chủ
user60216
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.