加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux Ksh和if语句我在C++中做的编程很少

发布时间:2022-11-15 11:19:41 所属栏目:Linux 来源:
导读:  Linux Ksh和if语句我在C++中做的编程很少,我真的不知道如何在KNopixOS上使用KornShell(KSH)中的代码。教授给我们的资源很少,所以很难计算出来。我们课堂上的两本教科书主要讨论UNIX变体中的命令,但与ksh的关
  Linux Ksh和if语句我在C++中做的编程很少,我真的不知道如何在KNopixOS上使用KornShell(KSH)中的代码。教授给我们的资源很少,所以很难计算出来。我们课堂上的两本教科书主要讨论UNIX变体中的命令,但与ksh的关系不大
 
  linuxshellif-statementscripting
 
  Linux Ksh和if语句我在C++中做的编程很少,我真的不知道如何在KNopixOS上使用KornShell(KSH)中的代码。教授给我们的资源很少,所以很难计算出来。我们课堂上的两本教科书主要讨论UNIX变体中的命令,但与ksh的关系不大,linux,shell,if-statement,scripting,ksh,Linux,Shell,If Statement,Scripting,Ksh,编写一个shell脚本,该脚本只接受一个必须为正整数的参数。(我的第二个有两个)Ksh代码:NUMBER=$1read -p NUMBER# Test that one argument was input.if [[ $# -ne 1 ]];then echo "Please enter an integer as an argument" exit 1elif [[ $NUMBER -le 0 ]];then # Test value of argument is les
 
  编写一个shell脚本,该脚本只接受一个必须为正整数的参数。(我的第二个有两个)
 
  Ksh代码:
 
  NUMBER=$1
  read -p NUMBER
  # Test that one argument was input.
  if [[ $# -ne 1 ]];then
    echo "Please enter an integer as an argument"
    exit 1
  elif [[ $NUMBER -le 0 ]];then # Test value of argument is less than or equal to zero
      echo "Please enter a number > 0"
      exit 1
  fi
  while [["$NUMBER" -ne 1]];do
      printf $NUMBER
  if [[$NUMBER -gt 1]];then
          printf ","
      fi
  NUMBER=$(($NUMBER-1))
  done
  printf $NUMBER
  当我从shell中运行这个程序时,我不断得到“请输入一个整数作为参数”作为输出,尽管输入是3,或者类似的东西
 
  我注意到没有任何东西可供用户输入,所以我试着亲自输入
 
  read -p NUMBER
  在if语句之前
 
  要继续运行脚本的其余部分linux语句,代码中缺少了什么?
 
  您应该在
 
  […]
  条件中双引号引用变量,或者使用扩展的
 
  […]
  条件(是的,第三种条件)。对于数值运算,通常使用
 
  (…)
  (哦,天哪,第四种类型!)
 
  请参见
 
  manbash
  或。
 
  应使用
 
  NUMBER=$1
  不知道你所说的
 
  $X
  是什么意思
 
  注意:$0是执行的命令,例如在
 
  /myscript.sh foo
  $0=./myscript.sh
  和
 
  $1=foo
  将其设置为变量
 
  NUMBER
  后,可以检查它是否为正整数:
 
  if [[ $NUMBER =~ ^[0-9]+$ ]]; then
      echo "It's ok!"
  else
      echo "BAD :("
  fi
  要只接受一个参数,您应该检查传递给脚本的参数数量(我认为您的老师正在问这个问题):
 
  $#提供传递给脚本的参数数量,因此很容易检查传递给脚本的参数数量。现在只需要检查它是否是整数和符号。我不知道你的老师到底想让你知道什么,但是你可以使用awk的函数来检查参数是否是一个数字、一个整数和它的符号(这个符号在ksh中也很简单)。
 
  你应该删除
 
  read-p number
  指令,该指令击败了之前的指令
 
  然后,您应该修复该行:
 
  elif [[ $NUMBER -le 0 ]];then
  到
 
  最后一部分使用了错误的测试,缺少一个结束新行:
 
  while [["$NUMBER" -ne 1]];do
      printf $NUMBER
  if [[$NUMBER -gt 1]];then
          printf ","
      fi
  NUMBER=$(($NUMBER-1))
  done
  printf $NUMBER
  应该是
 
  while [ $NUMBER -ne 1 ];do
      printf $NUMBER
      if [ $NUMBER -gt 1 ];then
          printf ","
      fi
      NUMBER=$((NUMBER-1))
  done
  printf "%s\n" $NUMBER
  @用户3193284:试着问问教授。在教学时,我鼓励学生提问。OP脚本根本没有使用
 
  csh
  语法
 
  elif
  绝对受
 
  bash
  、
 
  ksh
  和任何兼容POSIX的shell支持,并且不是
 
  csh
 

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!