2013-08-12 26 views

Trả lời

18

Như thế này:

eval c=\$$var 

một cách an toàn hơn là sử dụng gián tiếp:

c=${!var} 
+1

Điều đó đã làm các trick! – CocaCola

+0

Cảm ơn bạn vì điều này! Tôi đã đấu tranh để làm một biến biến trong vỏ bourne cho vài giờ tốt. Tùy chọn sau ở đây được liệt kê rất nhiều địa điểm nhưng chỉ hoạt động trong 'bash', nhưng trước đây cũng hoạt động trong' sh'. – DanielM

11
newVariable=$(eval echo \$$var) 
+0

Điều này dường như hoạt động, nhưng kết quả là giá trị có ký hiệu đô la là ký tự đầu tiên? Tôi đã thử \ $ var, nhưng sau đó các biến trong chuỗi của tôi không được mở rộng nữa. Ý tưởng nào? –

+0

'\' là char thoát, nếu bạn đặt nó trước một '$' bạn chắc chắn sẽ kết thúc với nó. Hãy thử '$ var'. Hoặc sử dụng ví dụ thứ 2 trong bài đăng ở trên. – hashier

0

lon này đạt được bằng cách sử dụng lại quote - `

c=`$var 
Các vấn đề liên quan