就比如我输入的Argument是"1000 1011",我需要判断是否有空格,如果有的话,我要把它分成两部分并传给两个不同的变量,比如$NUM1,$NUM2这样。
#!/bin/bash
S='1000 1011'
echo $S | grep " " >/dev/null 2>&1
if [ $? = 0 ];then
num1=$(echo $S | awk '{print $1}')
num2=$(echo $S | awk '{print $2}')
echo "NUM1=$num1"
echo "NUM2=$num2"
else
echo "没有空格"
fi
S='1000 1011'
echo $S | grep " " >/dev/null 2>&1
if [ $? = 0 ];then
num1=$(echo $S | awk '{print $1}')
num2=$(echo $S | awk '{print $2}')
echo "NUM1=$num1"
echo "NUM2=$num2"
else
echo "没有空格"
fi
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-12-13
S="1000 1011"
if [ "${S/ /}" = "$S" ]
then
echo "no space"
else
echo "space"
fi追问
if [ "${S/ /}" = "$S" ]
then
echo "no space"
else
echo "space"
fi追问
不知道是不是和系统有关,我的是Ubuntu10.04下的system shell
能和我讲一下if那行的意义吗? 比如为什么要作一个赋值操作?
而且这个在我这里似乎不work。
第2个回答 2011-12-13
s="1100 0110"
b1="${s##* }"
b2="${s%% *}"
echo b1
echo b2
b1="${s##* }"
b2="${s%% *}"
echo b1
echo b2