Я пытаюсь заменить 10-ю строку моего Gruntfile.js строками, извлеченными из finaltest.txt на каждой итерации цикла. Однако после следующего кода, что происходит в моей Gruntfile.js, 10-я строка заменяется на строку $x
и НЕ значение, которое оно содержит. Вот мой код:Как использовать результат команды в другой команде в bash?
#!/bin/bash
for i in {1..354}
do
x=`sed -n '$ip' finaltest.txt`
sed -i '10s/.*/$x/' Gruntfile.js
grunt
done
Кроме того, grunt
команды для запуска Gruntfile.js
. Что я здесь делаю неправильно?
EDIT: проблема $ x была решена в ответе ниже, sed -i "10s~.*~$x~" Gruntfile.js
.
Однако, единственная часть слева - это строки 1,2,3,4 и т. Д., Такие как 1p,2p,3p,4p,etc
из finaltest.txt, чтобы заменить 10-ю строку Gruntfile.js. Но
x=`sed -n '$ip' finaltest.txt
не работает должным образом за $ я, он дает ошибку. Я также пробовал "$(i)p"
, но все равно ничего. Что мне следует изменить?
Используйте двойные кавычки: 'SED -i«10s /.*/$ х»Gruntfile.js' – anubhava
Не помогает. говорит 'sed: -e выражение # 1, char 11: неизвестный параметр to' 's ' ' – HackCode
@kaushaya: выводит ли 'x' какой-либо косой чертой? –