有没有一种方法可以在不使用 echo 的情况下对 unix 变量的值进行子串或剪切?

有没有一种方法可以在不使用 echo 的情况下对 unix 变量的值进行子串或剪切?

有没有一种方法可以在不使用 echo 的情况下对 unix 变量的值进行子串或剪切?

例如我有一个包含日期的变量。

pDate=2020-06-22

我需要将年份和月份传递到单独的变量中。我将在 if else 语句中使用它们来确定一年中的季度。

我不使用脚本...我在 Datastage 中编码,这是用于执行命令阶段的。我使用了这个命令:

pDate=2020-06-22; pMonth= echo $pDate | cut -c6-7

所以它在 DS 序列作业的执行命令阶段的命令输出中给了我月份“06”。我只需要月份作为变量,而不是在命令输出中输出,因为如果作业有多个,则作业会失败输出。

答案1

可移植的是,您可以使用 shell 参数扩展:

$ pDate=2020-06-22
$ year=${pDate%%-*}
$ yearmonth=${pDate%-*}
$ month=${yearmonth#*-}
$ echo $year
2020
$ echo $month
06

使用 ksh,您可以从此处读取字符串:

$ IFS="-" read year month day <<<"$pDate"
$ echo "$year .. $month .. $day"
2020 .. 06 .. 22

相关内容