Solaris 中的字符串表达式不起作用
String expresion in Solaris not working
有人知道为什么下一个代码不能在 Solaris 中使用 KShell 运行吗?
DATE=20180420
MONTH=`expr ${DATE:4:2}`
echo MONTH=$MONTH
它returns:
${DATE:4:2}: wrong substitution
Shell 脚本语法在不同 shell 中是不同的,因此您遇到了这个问题。如果您 运行 它在 bash
中出售,它将在 Solaris 中为您工作。所以最好像下面这样更改脚本:-
DATE=20180420
MONTH=$(echo $DATE | cut -c 5-6)
echo MONTH=$MONTH
好处是它可以在 unix 中的所有 shell 中工作。这里有更多选项:-
当天:-
day=$(date +%d)
yy 格式的年份:-
year=$(date +%y)
yyyy 格式的年份:-
year=$(date +%Y)
您可以将以下行放在脚本的顶部,这将解决您的问题。
#!/bin/bash
DATE=20180420
MONTH=`expr ${DATE:4:2}`
# or MONTH=$(expr ${DATE:4:2})
echo MONTH=$MON
希望对您有所帮助。
有人知道为什么下一个代码不能在 Solaris 中使用 KShell 运行吗?
DATE=20180420
MONTH=`expr ${DATE:4:2}`
echo MONTH=$MONTH
它returns:
${DATE:4:2}: wrong substitution
Shell 脚本语法在不同 shell 中是不同的,因此您遇到了这个问题。如果您 运行 它在 bash
中出售,它将在 Solaris 中为您工作。所以最好像下面这样更改脚本:-
DATE=20180420
MONTH=$(echo $DATE | cut -c 5-6)
echo MONTH=$MONTH
好处是它可以在 unix 中的所有 shell 中工作。这里有更多选项:-
当天:-
day=$(date +%d)
yy 格式的年份:-
year=$(date +%y)
yyyy 格式的年份:-
year=$(date +%Y)
您可以将以下行放在脚本的顶部,这将解决您的问题。
#!/bin/bash
DATE=20180420
MONTH=`expr ${DATE:4:2}`
# or MONTH=$(expr ${DATE:4:2})
echo MONTH=$MON
希望对您有所帮助。