не может найти оптимальное разрешение для внешнего экрана

Решение оболочки POSIX

Первое решение terdon основывается на расширении скобки, которое является свойством bash и ksh, однако оно не может использоваться в стандартной оболочке /bin/sh, которая на Ubuntu обозначается символом /bin/dash.

В случаях, когда вам приходится полагаться /bin/sh на переносимость ваших сценариев, есть два способа приблизиться к этому. Один из них был бы через глобус. Просто cd folderA и оттуда бегут rm a_*. Другим способом было бы реализовать альтернативу C-style для цикла с использованием while <CONDITION>;do ...done в языке оболочки и форматировать числа с помощью printf:

$ sh -c 'i=0;while [ $i -le 750 ]; do filename=$(printf "a_%06d" $i);echo "$filename";i=$((i+1)) ;done'

Обратите внимание, что здесь я использую echo. Замените echo "$filename" на rm ./"$filename" или rm -- "$filename", когда вы будете готовы удалить файлы. Также обратите внимание, что это должно выполняться, когда вы уже cd вышли в нужный каталог.

(ab), используя awk

Awk, являющийся хорошим C-подобным языком, может помочь нам двумя способами: (1) мы можем сгенерировать имена файлов с помощью for-loop и отформатировать их с помощью функции sprintf и (2) удалить указанные файлы с помощью команды system(), которая передаст наше сгенерированное имя файла и rm в [ f21]:

awk 'BEGIN{for(i=0;i<=750;i++){filename=sprintf("a_%06d",i);system("rm "filename);} }'

Perl

Продолжая идею портативного подхода, где мы «сгенерируем» имена файлов, мы можем сделать то же самое в Perl:

perl -le 'for(0..750){$fd=sprintf("a_%06d",$_);unlink($fd)}'
0
задан 15 April 2017 в 19:03

3 ответа

Я уверен, что вам может или не понадобится это сейчас, но это для всех, у кого есть эта проблема. Это сработало для меня. Как и кто-то сказал в комментариях, я использовал xrandr

xrandr | grep maximum & sleep 2 gtf 2560 1440 60.0 & sleep 2 xrandr --newmode "2560x1440_60.00" 311.83 2560 2744 3024 3488 1440 1441 1444 1490 -HSync +Vsync & sleep 2 xrandr --addmode DP1 2560x1440_60.00 & sleep 2 xrandr --output DP1 --mode 2560x1440_60.00 & exit 0
1
ответ дан 18 July 2018 в 14:59

Я уверен, что вам может или не понадобится это сейчас, но это для всех, у кого есть эта проблема. Это сработало для меня. Как и кто-то сказал в комментариях, я использовал xrandr

xrandr | grep maximum & sleep 2 gtf 2560 1440 60.0 & sleep 2 xrandr --newmode "2560x1440_60.00" 311.83 2560 2744 3024 3488 1440 1441 1444 1490 -HSync +Vsync & sleep 2 xrandr --addmode DP1 2560x1440_60.00 & sleep 2 xrandr --output DP1 --mode 2560x1440_60.00 & exit 0
1
ответ дан 24 July 2018 в 20:31
  • 1
    не могли бы вы объяснить это немного? Как он используется? – Zanna 5 October 2017 в 09:26
  • 2
    Просто скопируйте его в файл .sh и сделайте chmod +x <file>.sh и ./<file>.sh – Nikhil Sikka 9 November 2017 в 16:13

Я уверен, что вам может или не понадобится это сейчас, но это для всех, у кого есть эта проблема. Это сработало для меня. Как и кто-то сказал в комментариях, я использовал xrandr

xrandr | grep maximum & sleep 2 gtf 2560 1440 60.0 & sleep 2 xrandr --newmode "2560x1440_60.00" 311.83 2560 2744 3024 3488 1440 1441 1444 1490 -HSync +Vsync & sleep 2 xrandr --addmode DP1 2560x1440_60.00 & sleep 2 xrandr --output DP1 --mode 2560x1440_60.00 & exit 0
1
ответ дан 31 July 2018 в 23:33
  • 1
    не могли бы вы объяснить это немного? Как он используется? – Zanna 5 October 2017 в 09:26
  • 2
    Просто скопируйте его в файл .sh и сделайте chmod +x <file>.sh и ./<file>.sh – Nikhil Sikka 9 November 2017 в 16:13

Другие вопросы по тегам:

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