Tôi có một dòng mãLưu trữ bash đầu ra vào một biến sử dụng eval
eval echo \$$var
mà in một chuỗi. Làm thế nào tôi có thể lưu trữ chuỗi này vào một biến?
Tôi có một dòng mãLưu trữ bash đầu ra vào một biến sử dụng eval
eval echo \$$var
mà in một chuỗi. Làm thế nào tôi có thể lưu trữ chuỗi này vào một biến?
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}
newVariable=$(eval echo \$$var)
Đ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? –
'\' 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
lon này đạt được bằng cách sử dụng lại quote - `
c=`$var
Điều đó đã làm các trick! – CocaCola
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