0

我目前正在学习 linux 课程。我几乎必须自学。我已经编写了这个脚本来生成基于参数的日期格式。即(./script.sh 一)。我在让这个脚本做到这一点时遇到问题。我认为我有问题。任何帮助将不胜感激。这是脚本:

#!/bin/bash


if [ $1="one" ]
    then
        date +%m-%d-%y 

elif [ $2="two" ]
    then
        date +%d-%m-%y

elif [ $3="three" ]
    then
        date +%A,%B-%d,%Y 

elif [ $4="four" ]
    then
        date +%s 
elif [ $5="five" ]
    then

fi
4

1 回答 1

3

Shell 脚本反直觉地对空格敏感。等号前后必须有空格。你也不能有一个完全空的if语句。那里必须至少有一个声明。如果你什么都没有,写作:是空语句的常用习语。

if [ $1 = "one" ]; then
    date +%m-%d-%y 
elif [ $2 = "two" ]; then
    date +%d-%m-%y
elif [ $3 = "three" ]; then
    date +%A,%B-%d,%Y 
elif [ $4 = "four" ]; then
    date +%s 
elif [ $5 = "five" ]; then
    :
fi

我猜您可能还想$1在所有检查中使用,而不是$1通过- 即$5检查第一个参数是什么。如果这是真的,那么您可以将ifs换成case.

case $1 in
    one)   date +%m-%d-%y;;
    two)   date +%d-%m-%y;;
    three) date +%A,%B-%d,%Y;;
    four)  date +%s;;
    five)  ;;
esac
于 2013-07-03T18:56:57.410 回答