Tôi đang viết một kịch bản lệnh shell lặp qua một số giá trị và chạy một dòng lệnh dài cho mỗi giá trị. Tôi muốn in ra các lệnh này trên đường đi, giống như make
hiện khi chạy một makefile. Tôi biết tôi chỉ có thể "echo" tất cả các lệnh trước khi chạy chúng, nhưng nó cảm thấy không phù hợp. Vì vậy, tôi nhìn vào set -x
và tương tự như cơ chế thay vì:cách tắt tiếng xtrace trong tập lệnh shell?
#!/bin/sh
for value in a long list of values
do
set -v
touch $value # imagine a complicated invocation here
set +v
done
Vấn đề của tôi là: tại mỗi lần lặp, không chỉ là dòng interresting in ra, mà còn là dòng set +x
là tốt. Có bằng cách nào đó có thể ngăn chặn điều đó không? Nếu không, bạn đề nghị cách giải quyết nào?
PS: MWE ở trên sử dụng sh
, nhưng tôi cũng có bash
và zsh
được cài đặt trong trường hợp giúp.
có thể trùng lặp của [bộ Bash + x mà không có nó được in] (http://stackoverflow.com/questions/13195655/bash-set-x-without-it-being-printed) – Beetle