как использовать вывод одной команды в качестве другой команды в Linux - PullRequest
0 голосов
/ 17 января 2019

Что я ищу, так это использовать вывод одной команды как «ИМЕННО ДРУГОЙ КОМАНДЫ» в Linux?

Например:

[root@ip-10-0-0-136 ~]# echo hi
hi
[root@ip-10-0-0-136 ~]

теперь это "привет" я хочу использовать в качестве немедленной команды и выполнить. Как мне это сделать ?

так, должно быть вроде:

[root@ip-10-0-0-136 ~]# echo hi
hi
[root@ip-10-0-0-136 ~]# hi

это возможно?

Пожалуйста, предложите

изменить 1:

пожалуйста, обратитесь к конкретному примеру:

[root@ip-10-0-0-136 ~]# aws ecr get-login --no-include-email --region eu-central-1
docker login -u AWS -p eyJwYXlsb2FkIjoibWJ3aVJhNmpwbFkzVjhnVFA1SlFnTXhDWHZoYUlKaVJKVGxIQjdheVVOMkk0NzM5NHFKelVYOXUxN21EMmVRMkx4dmJickNOWDY3bFNjL2hMSWE3c0dDT2cyOWxXb25NUVEzZW1sL2szajlUYTc0cHBFVmhWVU1vSUJVdGVMcWhKZ3k3NkpjWGVWR283dkU4amVCWGo0eDdVU3ZUMUc4WE5xRXBKSlRyQlh6c2M0TnZMME9iR2lHa1BqeFUrS2wrc052clUyY3pLVW56bTZEZFNRSHFlckZFU1ZnMEFkTWV4bHluMzQxUDhzWFNpdDBzYm1zZDlIYUFnSUM0Q3A2a1FZQVlZL3NUYXN3Zk9BZytIbVpxaGY2NFdzdEYxajBsNmlnR2NnMEkzYmJ0czl5c3REb0VENnBtK0FqZ2lLN1hpUlNPL01raEt5bnRTZ1lGSnB3cjJxb0RTZDdkUWE1QUtoaFhQdy9MU3kzMlZUVDRyRCsyTVU5TXRKY2FWMjBINFJKcnN3c08yUWFJaHE4VGsrZGZlcUxaSHowb1RNZmxlaDYxbDV0emN1bkNBOHdKeDIxcEliaXlQbFR4dWVrczdzbW9hamEraThxUjFlMi9XUHhUbGdKd2g1Y2FEd1RhbitJdDBtNDZ1ckZuWjMxOXpWelgyUm9vMG0ycm5rUk1iYkhmT2dRS2RPSUs0V0tzQm91eDRic2o2bHJVeGk4dGFOdEgyNmdPUG1oRUlHaVJRMlRqTThQbFlDRDZ6dEZHc3F3NnRRbmVwZUFHWUVTeG1xanV2WE5FUzBUUEVsYnFjSTFEcGNlVW9hU3JiY04wUVBqbjhOemc1VGgwTXZFQWhEWVpHaU9wTDA5RndxbEt5SXRrY0tQQklPSENSSi9qU3lSb29iOGJsK0c5VC8xWjB4ZnZxK3V4SWQwbU16ejFScXhmbHh3VE9uU3oxWVZmUkUxeENNeHpCOTJZRjlaMmZaOHB1SExMcGVKem4yN09SR1pIVWRXSkFaVEx2SmYyMC9PSHhWbXlKOGZ4Q3ByZ2czZlJRSDFnR3dkZDhRM3FQbGlBcVJYS0RhM0NOU0VuZ2phdjEwYUs4SDFxVW5tam1vYjh5ZDZMaytJbDNYTEJPSTF3UlhDS3FiUHUwMmM0MjVRYjhYQy9GUkxGdFJxZXhobFp4M0FpdHBzT3R2Y2hhQzZYdE5ZVnY4RUJMUlp1RFVqaGxrWlFVZkU1bnE5QTV4Skd0YWoyZWZWM3dLazcyRFUyckFxejlTQXVpMW1nbmsvUEFNTWdWdXNKTDJDeU0yUzdvMGxaYUZjUGN0M1ZEZTB3WDZvWVBoQ2dBb3BOTlRmVkhwSzkvdkVqUnlreGhLVlVFcUZKNjlwaHI5OHVlNlpjVndpT081ZlZ0Um5oTy93ZG9KSSt1aGRzci9MRUNSYXVTN1ErYWtleSt0d0VONmxKWGxKbnBBOGZ2SlB1ZHJwVHBQNTV4TStvZnN1M2tZUzFmVUh1Q2dJSDhQVmRZTmhjNzA4PSIsImRhdGFrZXkiOiJBUUVCQUhoM3pZT2R0cEJCU1Z3L1kyYW44QlhJRDRrd0xRZm5vVGo1endadEdKWm9aUUFBQUg0d2ZBWUpLb1pJaHZjTkFRY0dvRzh3YlFJQkFEQm9CZ2txaGtpRzl3MEJCd0V3SGdZSllJWklBV1VEQkFFdU1CRUVEQVZ3Znk3a0lxL0VjcTZHT0FJQkVJQTcxTnlNa0hBbERNRkw1Mk5uU2RjOENDVGcrWHhQMnVjMGl2OXRrQXNFNUoyZHNPV3AxSFVYblRyejR5dVAyT0pFWC8xZkxBc28xcDFFbCt3PSIsInZlcnNpb24iOiIyIiwidHlwZSI6IkRBVEFfS0VZIiwiZXhwaXJhdGlvbiI6MTU0Nzc2OTEzNX0= https://890543041640.dkr.ecr.eu-central-1.amazonaws.com
[root@ip-10-0-0-136 ~]# !$
eu-central-1
bash: eu-central-1: command not found
[root@ip-10-0-0-136 ~]# $
bash: $: command not found
[root@ip-10-0-0-136 ~]#

Ответы [ 4 ]

0 голосов
/ 17 января 2019

Я думаю, что вы можете просто передать какой-то вывод и передать его команде bash.

echo 'ls' | bash
0 голосов
/ 17 января 2019

Вы можете использовать подстановку команд:

[root@ip-10-0-0-136 ~]# $(echo hi)

Что идентично

[root@ip-10-0-0-136 ~]# `echo hi`
0 голосов
/ 17 января 2019

Вы можете использовать $(aws ecr get-login --no-include-email --region eu-central-1) Это выполнит вывод команды в круглых скобках. В вашем случае команда docker login -u AWS -p eyJwYX.. будет выполнена

См .: https://superuser.com/questions/935374/difference-between-and-in-shell-script

0 голосов
/ 17 января 2019

Да, это возможно при использовании !$. Если я использую [root@ip~ppp]$ echo cd cd [root@ip~ppp]$ !$ cd [root@ip~]$

Здесь cd команда выполнена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...