删除$*中的第一个参数

删除$*中的第一个参数

我有一个小的“logit”脚本;

#!/bin/bash
echo "• $(date +%Y.%m.%d.%H.%M.%S) • " >> "$1"
printf "%s" "$*" >> "$1"

这样我就可以随时随地创建日志。

但!当我将 $* 打印到日志文件时,它当然包含 $1,但由于这是日志的路径/文件名,我想将其从 $* 中排除,因此它不会出现在日志中的每一行..

这可能吗?

答案1

是的,使用shift

#!/bin/bash
echo "• $(date +%Y.%m.%d.%H.%M.%S) • " >> "$1"
log="$1"
shift
printf "%s" "$*" >> "$log"

看看男人的狂欢

移位[n]

从 n+1 ... 开始的位置参数被重命名为 $1 ...。从 $# 到 $#-n+1 的数字表示的参数未设置。n 必须是小于或等于 $# 的非负数。如果 n 为 0,则不会更改任何参数。如果未给出 n,则假定为 1。

相关内容