有没有一种方法可以在不使用 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