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 (编辑:我爱制作网_沈阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330576号