我有以下代码片段,我相信$ env_vars变量不是我期望的那样。
是否有一个程序/脚本可以代替docker
,然后将整个命令行输出到终端?因此,我可以调试命令行问题,然后将docker替换回去。
docker run \
-v $filePath:/script \
-v $uuid:/secrets \
$env_vars \
$containerImage \
bash /script/entry.sh
所以我可以拥有
someotherexe run \
-v $filePath:/script \
-v $uuid:/secrets \
$env_vars \
$containerImage \
bash /script/entry.sh
它将打印
someotherexe run -v somepath:/script -v uuid:/secrets etc...
答案 0 :(得分:2)
您可以将<Grid x:Name="MyGrid">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ScrollViewer>
<TextBlock
Height="700"
Background="Gray"
Text="Hello World" />
</ScrollViewer>
</Grid>
替换为docker
:
echo
答案 1 :(得分:0)
使用echo
打印参数可能会引起误解,因为它只会将其参数与中间的空格混在一起。如果其中一个参数包含空格或非打印字符怎么办?
执行此操作的常用方法是将set -x
放在命令之前,这使外壳程序在执行命令及其参数时会以其最喜欢的(有时是隐秘的)表示形式显示出来。
有时我也会使用类似的东西:
printargs() {
if [ $# -eq 0 ]; then
echo "printargs did not get any arguments"
else
echo "printargs got $# argument(s):"
printf " '%s'\n" "$@" | LC_ALL=C cat -vt
fi
}
这将以奇怪但可见的格式打印非打印字符和非ASCII字符。例如:
carriagereturn=$'\r'
tab=$'\t'
$ echo –x "spaces and control characters$tab$carriagereturn"
–x spaces and control characters
$ printargs –x "spaces and control characters$tab$carriagereturn"
printargs got 3 argument(s):
'M-bM-^@M-^Sx'
'spaces and control characters^I^M'
这里发生的事情:一方面,使用printargs
版本,很清楚哪些空格是参数的一部分,哪些空格是 之间的分隔符。 “ –x
”具有一个Unicode破折号,而不是类似命令的工具识别为指示选项的普通ASCII连字符。 cat -vt
部分将其UTF-8表示形式转换为一系列“元”(M-something)字符。回车和制表符是ASCII控制字符,特别是control-I和control-M,因此它使用^
作为“ control-”的简写形式打印它们。