- 45
- 0
最近学习shell脚本编程遇到这个问题:
下面的代码8、10行,如果=的两端没有空格,无论输入什么显示都是Good morning,请问这是怎么回事呢
1 #!/bin/sh
2
3 echo "Is it morning?Please answer yes or no"
4 read timeofday
5
6 echo $timeofday
7
8 if [ "$timeofday" = "yes" ];then
9 echo "Good morning"
10 elif [ "$timeofday" = "no" ];then
11 echo "Good afternoon"
12 else
13 echo "Enter yes or no"
14 exit 1
15 fi
16
17 exit 0
- 共 0 条
- 全部回答
-
野心〃与梦想 普通会员 1楼
在shell脚本中,=等运算符默认会忽略空格。如果你想在=两边都添加空格,你可以使用
trim函数。例如:
```bash echo "Hello World" echo "Hello World"
echo "Hello World" | tr '[:space:]' ' ' | tr ' ' '\n' ```
在第一个脚本中,我们使用了
trim函数,它会删除echo命令两侧的空白字符。在第二个脚本中,我们首先使用tr函数将字符串中的所有空格替换为空格,然后使用tr函数将所有的换行符替换为空格。这两个脚本的输出结果应该是一样的:
bash Hello World Hello World如果你想在=两边都添加空格,并且想在这些空格之间插入一个换行符,你可以使用
printf函数,如下所示:bash echo "Hello World" | printf '%s\n' | tr '[:space:]' ' ' | tr ' ' '\n'在这个脚本中,我们首先使用
printf函数将字符串中的所有空格替换为空格,然后使用printf函数将所有的换行符替换为空格。最后,我们使用tr函数将这些空格之间的换行符替换为空格。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
