Как использовать переменные в одиночных кавычках?

Мне просто интересно, как я могу повторить переменную внутри одинарных кавычек (я использую одинарные кавычки, так как в ней есть кавычки).

echo 'test text "here_is_some_test_text_$counter" "output"' >> ${FILE} 

любая помощь будет с благодарностью

Переменные расширяются в двойных кавычках, но не в одиночных кавычках:

  $ name=World $ echo "Hello $name" Hello World $ echo 'Hello $name' Hello $name 

Если вы можете просто переключать кавычки, сделайте это.

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

  $ echo 'single quoted. '"Double quoted. "'Single quoted again.' single quoted. Double quoted. Single quoted again. $ echo '"$name" has the value '"$name" "$name" has the value World 

Применительно к вашему делу:

  echo 'test text "here_is_some_test_text_'"$counter"'" "output"' >> "$FILE" 

использовать printf:

 printf 'test text "here_is_some_test_text_%s" "output"\n' "$counter" >> ${FILE} 

Используйте heredoc:

 cat << EOF >> ${FILE} test text "here_is_some_test_text_$counter" "output" EOF 

Наиболее читаемый, функциональный способ использует фигурные скобки внутри двойных кавычек.

 'test text "here_is_some_test_text_'"${counter}"'" "output"' >> "${FILE}" 

с подоболочкой:

 var='hello' echo 'blah_'`echo $var`' blah blah'; 

Вы можете сделать это следующим образом:

 $ counter=1 eval echo `echo 'test text \ "here_is_some_test_text_$counter" "output"' | \ sed -s 's/\"/\\\\"/g'` > file cat file test text "here_is_some_test_text_1" "output" 

Объяснение : Команда Eval обрабатывает строку как команду, поэтому после правильного количества экранирования она приведет к желаемому результату.

Он говорит выполнить следующую строку как команду:

 'echo test text \"here_is_some_test_text_$counter\" \"output\"' 

Команда снова в одной строке:

 counter=1 eval echo `echo 'test text "here_is_some_test_text_$counter" "output"' | sed -s 's/\"/\\\\"/g'` > file 

Выведите переменную, обернутую одинарными кавычками:

 printf "'"'Hello %s'"'" world 
  • Как бы вы подсчитали вхождения строки (на самом деле char) внутри строки?
  • \ r \ n, \ r, \ n в чем разница между ними?
  • Как интерполировать строки?
  • Чтение строк по строкам
  • Java String array: существует ли размер метода?
  • Objective-C разметка шестнадцатеричной строки для целого числа
  • Escape curly brace '{' в String.Format
  • Почему String.replaceAll () в java требует 4 слэша «\\\\» в regex, чтобы фактически заменить «\»?
  • Android: что-то лучше, чем андроид: ellipsize = "end", чтобы добавить "..." в укороченные длинные строки?
  • Обратить строку в Java
  • Как добавить новые элементы в массив?
  • Interesting Posts

    Идентификатор asp.net получает все роли зарегистрированных пользователей

    Блокнот ++ добавить в каждую строку

    C ++ Winsock P2P

    Могу ли я установить Windows 7 в именах A: \ или B: \?

    Настройка ориентации устройства в Swift iOS

    Почему сценарий моих приложений, развернутый как исполняемый API API, возвращает разрешение «Отказано»?

    Как получить информацию о пользователе из twitter в приложении Android?

    «Формат данного пути не поддерживается».

    неинициализированная константа MysqlCompat :: MysqlRes (с использованием mms2r gem)

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

    Службы Google Play устарели. Требуется 3159100, но найдено 3158130

    Как удалить файлы cookie для определенного сайта

    Средство поиска и замены Mac OS X с поддержкой регулярных выражений

    Django: Как перенаправить сообщение и передать данные сообщения

    Что такое простой, маленький, но хороший наблюдатель RSI для Windows?

    Давайте будем гением компьютера.