Одно решение состоит в том, чтобы спасть до tty консоли (ctrlaltF2) и работать xrandr
изменить настройки дисплея к режиму клонирования. Выполните команду однажды без опций найти названия соединений. Ищите строку, которая похожа
eDP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 282mm x 165mm
Здесь соединение называют eDP1
. Установите рабочий монитор для отображения того же содержания как поврежденное с чем-то как
xrandr --output eDP1 --auto --output VGA --auto --same-as eDP1
Затем можно переключиться назад на графический режим (ctrlaltF1), и дисплей должен быть клонирован.
Можно достигнуть персистентного решения путем создания xorg.conf файла с набором опции клона. Запишите следующие строки, чтобы зарегистрировать и переместить его в /etc/X11/xorg.conf.d/20-clone-mode.conf
Section "ServerLayout"
Option "Clone" "On"
EndSection
Я не протестировал его, но если эта конфигурация завершена, мониторы должны быть клонированы в следующий раз, когда Вы загружаетесь.
Это может сработать:
in_file=./data
vector=($(./readdata.sh 0 $in_file))
for index in ${!vector[@]}
do
echo ${vector[index]//\"/}
done
Ref: http://www.tldp.org/LDP/abs/html/refcards.html#AEN22828
Как вы предпочитаете один вкладыш
vector=("${vector[@]//\"/}")
, помните, что текстовые замены могут работать на массив в целом.
Вы сделаете вашу программу проще и более надежным, если ReadData.sh
производит новые данные с разделителями, без дополнительных кавычек.
В вашей текущей программе вывод readdata.sh
разделен на пробел (например, «ab»
приводит к двум элементам массива A
и B «
) и каждое полученное слово интерпретируется как шаблон подстановки (так, например, « A * B »
приводит к « A
, то имена файлов в Текущий каталог, и, наконец, B "
). См. Почему мой скрипт Shell заслонка пробела или других специальных символов? Для более подробной информации.
Bash обеспечивает очень простой способ чтения данных Newline-deliMited: MAPFile
. Поскольку Bash выполняет правую сторону трубопровода в подпункте, вы не можете просто написать ./ ReadData.sh 0 "$ In_file" | mapfile -t vector
, вы должны поместить использование переменной в командном блоке, или вы можете использовать подстановку процесса:
in_file=./data
mapfile -t vector < <(./readdata.sh 0 "$in_file")
for index in "${!vector[@]}"
do
echo "$index: ${vector[index]}"
done
, если вы не используете индексы, только элементы, более простой способ За массивом находится
for element in "${vector[@]}"
do
echo "$element"
done
Если вы хотите избежать «хакерского» поиска и замены Решение, использующее eval
, похоже, выполняет свою работу:
vector=( $(eval echo ${vector[@]}) )
Это заставляет оболочку интерпретировать их как цитируемые аргументы для echo
, который удаляет кавычки. Конечно, в приведенной выше строке все еще есть проблемы с пробелами, но ключевым моментом здесь является идея использования eval
.