В моем script я пытаюсь проверить ошибку, если первый и единственный аргумент равен -v, но это необязательный аргумент. Я использую оператор if, но я продолжаю получать ожидаемую ошибку унарного оператора.
это код:
if [ $1 != -v ]; then
echo "usage: $0 [-v]"
exit
fi
Edit:
Я должен быть более конкретным: Эта часть script выше проверяет необязательный аргумент, а затем, если аргумент не введен, он должен запустить остальную часть программы.
#!/bin/bash
if [ "$#" -gt "1" ]; then
echo "usage: $0 [-v]"
exit
fi
if [ "$1" != -v ]; then
echo "usage: $0 [-v]"
exit
fi
if [ "$1" = -v ]; then
echo "`ps -ef | grep -v '\['`"
else
echo "`ps -ef | grep '\[' | grep root`"
fi