Bash переменные в команде

Использование sed:

some_command | sed -n 'p;$='

Например:

$ touch file.{a..k}
$ printf '%s\n' * | sed -n 'p;$='
file.a
file.b
file.c
file.d
file.e
file.f
file.g
file.h
file.i
file.j
file.k
11

Сценарий sed просто скопирует ввод в вывод с помощью команды печати (p ) применяется к каждой строке ввода, но для последней строки ($) также будет напечатан номер строки (=).

0
08.08.2017, 20:17
2 ответа
#!/bin/bash

display_x=640
display_y=480

xrandr -s ${display_x}x${display_y}
6
28.01.2020, 02:15

Вы всегда должны заключать переменные оболочки в кавычки если у вас нет веской причины не делать этого, и вы уверены, что знаете, что делаете. Таким образом Ответ Дезхватки должен быть

xrandr -s "${display_x}x${display_y}"

Я бы, наверное, так и сделал. Но

xrandr -s "$display_x"x"$display_y"

также будет работать. Вот еще один подход:

display_x=640
display_y=480
x=x
xrandr -s "$display_x$x$display_y"

— что-нибудь сказать оболочке что вы не пытаетесь сослаться на переменную с именем display_xx.

2
28.01.2020, 02:15

Теги

Похожие вопросы