Исходя из того факта, что вы хотите использовать его с уценкой (Pandoc), насколько я могу видеть из комментария к блогу , где вы ссылались на этот вопрос , я бы также предложил попробовать my pander package :
> library(pander)
> panderOptions('decimal.mark', ',')
> panderOptions('table.split.table', Inf)
> pander(head(iris))
-------------------------------------------------------------------
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
-------------- ------------- -------------- ------------- ---------
5,1 3,5 1,4 0,2 setosa
4,9 3 1,4 0,2 setosa
4,7 3,2 1,3 0,2 setosa
4,6 3,1 1,5 0,2 setosa
5 3,6 1,4 0,2 setosa
5,4 3,9 1,7 0,4 setosa
-------------------------------------------------------------------
Или PHP Markdown Дополнительный синтаксис для упрощения использования с помощью knitr
:
> pandoc.table(head(iris), style = 'rmarkdown')
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|:--------------:|:-------------:|:--------------:|:-------------:|:---------:|
| 5,1 | 3,5 | 1,4 | 0,2 | setosa |
| 4,9 | 3 | 1,4 | 0,2 | setosa |
| 4,7 | 3,2 | 1,3 | 0,2 | setosa |
| 4,6 | 3,1 | 1,5 | 0,2 | setosa |
| 5 | 3,6 | 1,4 | 0,2 | setosa |
| 5,4 | 3,9 | 1,7 | 0,4 | setosa |
Первый случай
docker run -it -e "name=JD" --entrypoint 'echo' ubuntu 'Hello $name'
Одиночная кавычка всегда препятствует расширению переменной. Все, что вы пишете в одинарных кавычках, остается неизменным. Попробуйте echo '$PWD'
в своем терминале, и вы увидите $PWD
в качестве выхода. Попробуйте echo "$PWD"
, и вы получите распечатанный рабочий каталог.
Второй случай
docker run -it -e "name=JD" --entrypoint 'echo' ubuntu "Hello $name"
Ваш код расширяется до запуска Docker. Ваша оболочка раскрывает всю строку и затем выполняет ее. В этот момент вы не объявили $name
и получили его пустым. Это означает, что внутри контейнера вы получаете команду "Hello "
, а не "Hello $name"
.
Если вы хотите отобразить переменную окружения изнутри контейнера, самый простой способ - обернуть скрипт в sh-файл , чтобы предотвратить его расширение и передать этот файл в контейнер.
Третий случай, я думаю, очевиден и не нуждается в объяснении.