Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash程序在if语句之后挂起_Linux_Bash - Fatal编程技术网

Linux Bash程序在if语句之后挂起

Linux Bash程序在if语句之后挂起,linux,bash,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 它是否应该对文件$1进行排序并将其保存到sorted.csv?elif工作?排序正在等待数据。您是否将CSV文件重定向到脚本中?或者您实际上是想通过

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

if [ "$1" = "-f" ]; then
    sort -r -t, -k5 $1>sorted.csv
elif [ "$2" = "" ]; then
    sort -r -t, -k5 $1
fi

它是否应该对文件$1进行排序并将其保存到sorted.csv?elif工作?

排序
正在等待数据。您是否将CSV文件重定向到脚本中?或者您实际上是想通过
“$2”
测试

排序
正在等待数据。您是否将CSV文件重定向到脚本中?或者您实际上是想通过
“$2”
测试
吗?

第一个if测试查看参数$1,并在该参数为“-f”时执行某些操作。某个对象在“sort”调用中使用相同的参数,其计算结果如下:

sort -r -t, -k5 -f > sorted.csv
这将挂起,因为您必须将要排序并保存在sorted.csv中的文件内容导入脚本。我想当它挂起时,您总是可以键入csv文件内容,然后用CTRL-D:-)结束。'-f'可以在我的机器上进行折叠箱排序

如果您的意思是传入一个文件名:

if [ $# -gt 1 ]
then
   if [ $1 = "-f" ]
   then
      # assume $2 not a control switch for sort but a file name
      sort -r -t, -k5 $2 > sorted.csv
   fi
fi
if [ $# -eq 1 ]
then
   # assume $1 not a control switch for sort but a file name
   sort -r -t, -k5 $1
fi

第一个if测试查看参数$1,并在该参数为'-f'时执行某些操作。某个对象在“sort”调用中使用相同的参数,其计算结果如下:

sort -r -t, -k5 -f > sorted.csv
这将挂起,因为您必须将要排序并保存在sorted.csv中的文件内容导入脚本。我想当它挂起时,您总是可以键入csv文件内容,然后用CTRL-D:-)结束。'-f'可以在我的机器上进行折叠箱排序

如果您的意思是传入一个文件名:

if [ $# -gt 1 ]
then
   if [ $1 = "-f" ]
   then
      # assume $2 not a control switch for sort but a file name
      sort -r -t, -k5 $2 > sorted.csv
   fi
fi
if [ $# -eq 1 ]
then
   # assume $1 not a control switch for sort but a file name
   sort -r -t, -k5 $1
fi

echo语句是你最好的朋友echo语句是你最好的朋友。。。或者排序
“$2”
而不是
$1
(也应该正确地用双引号引起来)?
$1
之间缺少空格导致
$1
被视为重定向的文件描述符,而不是
排序的参数。因此,它正在等待标准输入。。。。或者排序
“$2”
而不是
$1
(也应该正确地用双引号引起来)?
$1
之间缺少空格导致
$1
被视为重定向的文件描述符,而不是
排序的参数。结果,它正在等待标准输入。作为文件名的变量插值基本上应该总是双引号。您需要贯穿始终的
“$1”
pro
$1
,同上
“$2”
。作为文件名的变量插值基本上应该始终是双引号。您需要整个
“$1”
pro
$1
,同上
“$2”