Разница между приведенными вами версиями заключается только в разных именах файлов/аргументах.
Дифференцирование вариантов более или менее одинакового кода с помощью "ifdef
"-подобных структур обычно не является лучшим способом, так как это приводит к
трудноразрешимому и дублирующемуся коду.
В вашем примере можно, например, использовать переменные оболочки (и одно небольшое if ... ; then
предложение) для переключения между двумя вариантами:
#call the script with -2 to switch to the second version.
if [ "$1" = "-2" ]; then
firstfile="newblank.pdf"
secondfile="newblank2.pdf"
else
firstfile="blank.pdf"
secondfile="blank2.pdf"
fi
echo "" | ps2pdf -sPAPERSIZE=a4 - "$infile"
cp "$firstfile" "$secondfile"
pdftk \
"A=$firstfile" `#first file` \
"B=$secondfile" `#second file` \
cat A B \
output b.pdf
Если вы хотите иметь несколько вызовов одного и того же кода с незначительными изменениями, вы можете рассмотреть возможность определения функций
и вызова их
с разными аргументами.
Проблема, с которой я столкнулся, связана с функцией Отключить при наборе текста на моем трекпаде. Это шаги, которые я использовал для ее решения.
Убедитесь, что xinput
установлен.
Введите xinput
, чтобы узнать имя трекпада. Мой был ETPS/2 Elantech Touchpad
.
Запустите xinput --list-props "DEVICE"
, чтобы получить список свойств устройства.
Просмотрите список, пока не найдете что-то вроде Disable While Typing
.
Используйте
xinput --set-prop "DEVICE" ID_OF_PROPERTY 0
Для меня,это было
xinput --set-prop "ETPS/2 Elantech Touchpad" 294 0