bash - 为什么是美元?创建一个文件?
问题描述
在以下脚本中,我正在测试如何计算命令运行的次数。
#!/bin/bash
echo "Hello"
scount=$?
if [ $scount -eq 0 ]; then
count=$(cat ${scount})
else
count=0
fi
((count++))
echo ${count} > ${scount}
echo "Scount: $count"
这是我收到的输出。我很困惑为什么我会收到这个cat: 0: No such file or directory
消息。
Hello
cat: 0: No such file or directory
Scount: 1
解决方案
正如 Unix手册中所说的 cat
cat - 连接文件并在标准输出上打印
正如在 $ 上所说的那样?这里
美元?是最后执行的命令的退出状态。
所以:
- cat 命令希望在标准输出中读取和打印文件
- 美元?是一个数字,其值为 0,导致在该脚本点执行的最后一个命令是
echo "Hello"
(执行良好 = 状态 0)
你正试图cat 0
用这个做这样的事情:
count=$(cat ${scount})
推荐阅读
- android - Android - 如何将视图添加到布局程序中
- kubernetes - Istio 复杂 K8sObjectOverlay.PathValue
- c++ - 函数重载时的 SFINAE 和隐式强制转换
- python - PyAgrum 返回一个因果公式没有意义/python
- laravel - 如何使用一个 Laravel 控制器和多个 Guard 而不是复制控制器
- javascript - 如何使用 telnet 在 javascript 中调用变量
- javascript - 在迭代中创建函数
- php - php将多个动态输入数据插入数据库
- javascript - 如何将数据从 Electron 传递到 HTML
- android - 如何将扫描的二维码图像保存在颤振中?