juj*_*uju -1 io-redirection shell-script
我想获得有关以下命令正在执行的操作的更多详细信息:
PASSING=0 FAILED=0 > log_${ENV} print "Test Started at `date`\n"
Run Code Online (Sandbox Code Playgroud)
该命令可以改写为
PASSING=0 FAILED=0 print "Test Started at `date`\n" >log_${ENV}
Run Code Online (Sandbox Code Playgroud)
因为重定向可能发生在命令行的任何位置。
重定向将print
命令的输出发送到名为的文件log_${ENV}
(或者log_$ENV
,这里的大括号不会做任何事情),其中ENV
应该是当前环境中存在的具有某些值的 shell 变量。
对PASSING
和的两个赋值FAILED
将在print
命令的环境中设置这两个变量。执行此行后它们将不存在(除非它们之前存在于脚本中,在这种情况下,执行此命令行后它们的原始值将保持不变)。
由于print
它似乎没有使用这两个变量(除非它是一个脚本或函数或其他我们不知道的东西),因此很难说这些变量的意图是什么。
该print
事物将文本字符串作为其唯一参数,其中字符串的一部分是旧式命令替换,它将date
在print
调用之前扩展为命令的输出。使用更现代的命令替换语法,参数也可以写成"Test Started at $(date)\n"
.
整体效果可能(取决于什么print
)是将给定的文本字符串写入特定文件,其名称取决于 value $ENV
。
有关的:
In ksh93
(和zsh
),print
是一个 shell 内置实用程序,其行为(粗略地说)有点像echo
. 该 shell 还$ENV
以一种特殊的方式处理,因为它将$ENV
在启动交互式 shell 时获取指向的文件。不建议将它(或一般大写变量)用作 shell 脚本中的通用变量。
与此相关:
归档时间: |
|
查看次数: |
90 次 |
最近记录: |