请问一个shell的简单问题,本人刚开始学系。

来自:    更新日期:早些时候
一个简单的shell问题~

[ $num -eq 200 ]    两数相等为真
[ $num -ne 200 ]    两数不等为真
[ $num -gt 200 ]    大于200为真
[ $num -ge 200 ]    大于等于200为真
[ $num -lt 200 ]    小于200为真
[ $num -le 200 ]    小于等于200为真

应该是脚本写错了,根本没有-ls这个选项

["$DEST"="y"] 改为
[ "$DEST"="y" ]
注意空格.
["$DEST"="n"] 类似

假如:$1=itm/5.0.0/
1、PAK_PATH=$(echo "$1" | sed 's/\/$//g')
执行结果:PAK_PATH=itm/5.0.0
功能说明:就是用sed命令,如果$1的最后一个字符是/,那么就把/替换为空(即:去掉),因此,输出结果为PRO_VER=itm/5.0.0
2、PRO_VER=$(echo "$1" | sed 's/\/$//g'|awk -F'/' '{print $2}')
执行结果:PRO_VER=5.0.0
功能说明:先用sed命令,把$1的最后一个字符是/去掉,此时为itm/5.0.0,然后,用awk命令,以/为分隔符,输出itm/5.0.0的第2部分,即:5.0.0。

shell基本功能说明:
1、管道 |
|表示管道,意思就是把前一个命令的输出,作为后一个命令的输入。因此:echo "$1" | sed 's/\/$//g',就是echo "$1"的结果作为sed命令的输。
2、命令执行$()
$()代表执行括号内的命令。因此,$(echo "$1" | sed 's/\/$//g')就等同于在shell命令模式下直接输入执行echo "$1" | sed 's/\/$//g'。
PAK_PATH=$(echo "$1" | sed 's/\/$//g')等同于PAK_PATH=`echo "$1" | sed 's/\/$//g'`
3、awk
awk 中的 -F表示分隔符,-F'/'表示以/作为分段分隔符,默认是以空格作为分隔符。

 希望能帮助到你,你的好评是我前进的动力!谢谢!




请问一个shell的简单问题,本人刚开始学系。视频

相关评论:
  • 15066118388请问一个shell的简单问题,本人刚开始学系。
    袁话菁假如:$1=itm\/5.0.0\/1、PAK_PATH=$(echo "$1" | sed 's\/\\\/$\/\/g')执行结果:PAK_PATH=itm\/5.0.0功能说明:就是用sed命令,如果$1的最后一个字符是\/,那么就把\/替换为空(即:去掉),因此,输出结果为PRO_VER=itm\/5.0.02、PRO_VER=$(echo "$1" | sed 's\/\\\/$\/\/g'|awk...

  • 15066118388linux shell脚本问题(简单)
    袁话菁if 语句:条件语句为真(1),执行条件为真的语句(cat + ls)条件语句为假(0),执行条件为假的语句(cat ...)

  • 15066118388请教,我写一个简单的shell脚本,但是提示“ 期待整数表达式”
    袁话菁可能少个符号"$",我的也是这个问题 1 #!\/bin\/bash 2 #从命令行中输入一个数n,统计1+..+n的值是多少 3 4 SUM=0 5 i=0 6 while [ $i -le $1 ]7 do 8 SUM=$[$SUM+$i]9 i=$[$i+1]10 done 11 echo "sum=$SUM"

  • 15066118388一个简单的shell脚本问题!怎么出现了死循环呢?谢谢
    袁话菁q)echo "quit"a=11 或直接用 break ;;Q)echo "quit"a=11 或直接用 break ;;另外,可以这样写,表示同时匹配两个字母:qQ) xxx ;;

  • 15066118388一个简单的shell脚本报错,错误码是too many arguments
    袁话菁!\/bin\/bash file_list="opt\/trap.log \/opt\/Data_Migration.conf \/opt\/test.sh"for i in $file_list do file_size=`du -sh $i`if [[ $file_size > 1 ]]; then echo $file_size fi done ]; 这俩连着 把 -gt 换成 >

  • 15066118388简单的shell脚本作业,但是没思路啊!新手求助!
    袁话菁对传给shell脚本的选项分析通常有两种方法,一种是通过case语句手工分析,另一种是通过getopts命令实现。进一步man getopts和网上的资料、发现getopts只支持单字符,即 -c、-s这类,不支持-cmp这个字符串格式 所以我们只能通过case语句手工分析了;2.要比较文件、需要用到diff命令、查看man diff,并且根据...

  • 15066118388请教,一个用shell循环创建目录的问题
    袁话菁循环创建目录的话只要定义一下数字的序号,就可以用for循环mkdir了 因为linux的目录不能重名,所以改数字比改字母简单

  • 15066118388用shell程序写出一个脚本,内容如下:+输入y,Yyes,Yes中一个,则屏幕上...
    袁话菁以下是一个简单的Shell脚本,用于根据用户输入输出问号:使用方法:打开终端或命令行界面;进入脚本所在目录;输入 .\/script.sh(假设脚本文件名为 script.sh)并按回车键;根据提示输入 y、Y、yes 或 Yes 中的一个,并按回车键;如果输入有效,则屏幕上会输出一个问号;否则会提示输入无效。

  • 15066118388shell脚本问题请教,我想用截取本机的IP,并做成地址池的形式
    袁话菁可以使用脚本ping一遍你想要做地址池的IP区间,将返回值非0的IP地址添加到地址池中。给个简单例子 !\/bin\/bash#for i in 10.0.0.{1..255};do ping $i -c 1 -w 1 if [ $? -eq 1 ];then echo $i >> ~\/ip_pool.txt fidone当然这只是大体思路,具体的根据你的实际情况...

  • 15066118388编shell脚本遇到一个问题,awk能切割掉最后一个字段的值嘛?
    袁话菁先设个变量:path=\/usr\/share\/man\/man5\/locale.alias.5.gz 法一,bash中特有的字符串分割法:echo ${path%\/*}\/ 法二,sed中的s替换命令,利用了*在正则中的贪婪特性:echo $path | sed 's#\\(.*\/\\).*#\\1#'法三,awk字段分割重组:echo $path | awk -F\/ '{for(i=1;i<NF;i++...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网