Tôi đã tìm kiếm khắp nơi. Đã thử echo và in. Đã thử báo giá đơn và đôi. Nhưng tôi đã phân tích dữ liệu và gán nó cho một biến và sau đó muốn đánh giá nó nếu có một biến trong đó. Sau đó tôi sẽ thay thế biến bằng ký tự đại diện và tìm kiếm tệp.
Thí dụ:
var="file.$DATE.txt"
### Where it goes wrong- Needs to identify that $DATE is within the $var varaible.
test=$(echo "$var"|grep '\$')
if [[ $test ]]
then
### I would use whatever fix is discovered here as well
test=$(echo $test|sed 's/\$[a-zA-Z]*/\*/')
fi
### (Actually pulling from remote machine to local)
cat $test > /tmp/temporary.file
Đây là ít nhất một trong nhiều thất bại của tôi:
PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>
Tôi biết nó có liên quan đến việc mở rộng, nhưng không biết làm thế nào để giải quyết nó. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn!
Xin lỗi, để kiểm tra xem một biến được định nghĩa trong biến "var". Lồng các loại.
—
krmarshall87
Tôi đã tìm ra cách giải quyết vấn đề nan giải của mình bằng cách loại bỏ ngay lập tức bất cứ thứ gì có vẻ là một biến số (mà không cần quan tâm trước tiên mà tôi cần) và trao đổi nó với một ký tự đại diện:
—
krmarshall87
sed 's/\${*[a-zA-Z0-9_%]*}*/\*/'
$date
? Đối với việc sử dụng :var='file.$DATE.txt'
. Để mở rộng ngày khi var được sử dụng? Tôi chắc chắn rằng bạn cần phải giải thích những gì bạn đang hỏi.