我注意到用于编写日志的C shell脚本writeLog.csh具有以下语句:
$<
echo "The date is 20160111 " writeLog.csh record.log
是什么意思?
在此上下文中调用c shell脚本:
{{1}}
这意味着脚本writeLog.csh会将“日期为20160111”写入文件record.log。
如何使用shell脚本而不是c shell脚本执行此操作?
答案 0 :(得分:1)
$<
从csh中的标准输入读取一行。
假设您的意思是Posix shell,read
是等效的命令。
您的脚本最终会显示为:
read record
echo "date $record" >> $1
示例:
$ echo "The date is 20160111" | writelog.sh record.log
$ cat record.log
date The date is 20160111
但我想你会想要自动为日志记录加时间戳?在这种情况下,你会想要这样的东西:
read record
echo "`date`: $record" >> $1
这会给你这样的记录:
Mon Jan 11 21:38:58 CET 2016: The date is 2016011
答案 1 :(得分:0)
http://linux.die.net/man/1/csh
$&LT;
从标准输入中替换一行,之后不再进行进一步的解释。它可用于在shell脚本中从键盘读取。 (+)虽然csh总是引用$&lt;,好像它等于'$&lt;:q',但tcsh却没有。此外,当tcsh正在等待输入行时,用户可以键入中断来中断要替换该行的序列,但是csh不允许这样做。