如果声明,Bash程序挂起

mrm*_*084 1 linux bash

我是bash的新手,我有一个程序可以对csv文件进行排序,然后根据输入进行打印或保存.但是在保存的if语句之后它继续挂在它上面.

if [ "$1" = "-f" ]; then
    sort -r -t, -k5 $1>sorted.csv
elif [ "$2" = "" ]; then
    sort -r -t, -k5 $1
fi
Run Code Online (Sandbox Code Playgroud)

它不应该排序文件$ 1并将其保存到sorted.csv?elif工作?

Ign*_*ams 5

sort正在等待数据.您是否将CSV文件重定向到脚本中?或者你的意思是传递"$2"test谁?

  • ...或者排序`"$ 2"`而不是`$ 1`(也应该用双引号)? (2认同)