Как использовать переменную среды в заключенной в кавычки строке в Bash

Добавьте это в свой цикл For Each

Dim j as integer ‘Add to top of your sub
j = 0 ‘Add inside for loop 

For Each tempWorkSheet In sourceWorkbook.Worksheets
    j= j+1
    tempWorkSheet.Copy after:=mainWorkbook.Sheets(mainWorkbook.Worksheets.Count)
    ActiveSheet.Name = sourceWorkBook.Name & “ - “ & j ‘Added Line of code to rename copied tab
Next tempWorkSheet

Пока названия ваших книг не слишком длинные и не повторяются, это должно быть хорошо

82
задан codeforester 21 December 2017 в 18:51
поделиться

4 ответа

Если вы не уверены, вы можете использовать запрос cols на терминале и забыть COLUMNS:

COLS=$(tput cols)
15
ответ дан 24 November 2019 в 08:58
поделиться

Вы делаете это правильно, поэтому я предполагаю, что в чем-то еще виновата (не в экспорте КОЛОННЫ?).

Уловка для отладки этих случаев состоит в том, чтобы создать специальную команду ( закрытие для ребят, занимающихся языком программирования). Создайте сценарий оболочки с именем diff-columns, выполняя:

exec /usr/bin/diff -x -y -w -p -W "$COLUMNS" "$@"

и просто используйте

svn diff "$@" --diff-cmd  diff-columns

. Таким образом, ваш код будет более чистым для чтения и более модульным (подход сверху вниз), и вы можете протестировать код diff-columns полностью отдельно (внизу план вверх).

0
ответ дан 24 November 2019 в 08:58
поделиться

Следующий сценарий работает для меня для нескольких значений $ COLUMNS . Интересно, не устанавливали ли вы COLUMNS до этого вызова?

#!/bin/bash
COLUMNS=30
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"

Можете ли вы повторить $ COLUMNS внутри своего скрипта, чтобы увидеть, правильно ли он установлен?

1
ответ дан 24 November 2019 в 08:58
поделиться

Note that COLUMNS is:

  1. NOT an environment variable. It is an ordinary bash parameter that is set by bash itself.
  2. Set automatically upon receipt of a SIGWINCH signal.

That second point usually means that your COLUMNS variable will only be set in your interactive shell, not in a bash script.

If your script's stdin is connected to your terminal you can manually look up the width of your terminal by asking your terminal:

tput cols

And to use this in your SVN command:

svn diff "$@" --diff-cmd /usr/bin/diff -x "-y -w -p -W $(tput cols)"

(Note: you should quote "$@" and stay away from eval ;-))

13
ответ дан 24 November 2019 в 08:58
поделиться
Другие вопросы по тегам:

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