Не одна команда, а одна строка (и имя файла
создается с правильным режимом и содержимым) в оболочках, которые поддерживают подстановка процесса:
install -m 0755 <(echo "file content") filename
Используйте это, чтобы включить расширение переменных:
myvar=$(perl -e 'print "AAA" x ('"$i"')')
В Perl встроена рудиментарная форма разбора опций. Она работает так же, как опция awk -v
, но она более уродлива
myvar=$(perl -s -e 'print "AAA" x ($j)' -- -j="$i")
Это передает $i
оболочки в perl как переменную perl $j
. Двойной дефис нужен для того, чтобы -j
не был поглощен самим двоичным файлом perl.
Проблема заключается в типе кавычек, которые вы используете. Одинарные кавычки приводят к тому, что расширение переменной shell не выполняется.
i=5
myvar=$(perl -e "print 'AAA' x ($i)")
echo "$myvar"
Этот код работает, как и предполагалось.