#!/bin/bash if [ $# = 0 ] then echo "Usage: $0 number-list" exit 1 fi sum=0 count=$# while [ $# != 0 ] do sum=`expr $sum + $1` shift done #display final sum echo "The sum of the given $count numbers is $sum." exit 0在此基础上编写一个脚本,它带有若干文件名作为运行参数,脚本的功能是统计这些文件的大小之和。
时间: 2024-02-07 09:02:34 浏览: 45
你可能发错了之前的问题,这是一模一样的代码和问题。我已经为你编写了一个脚本,用于统计给定文件的大小之和。请查看以下脚本:
```bash
#!/bin/bash
if [ $# = 0 ]
then
echo "Usage: $0 file-list"
exit 1
fi
size=0
count=$#
while [ $# != 0 ]
do
if [ -f $1 ]
then
size=`expr $size + $(stat -c '%s' $1)`
else
echo "$1 is not a file"
fi
shift
done
echo "The total size of the given $count files is $size bytes."
exit 0
```
在这个脚本中,我们使用 `stat` 命令获取文件的大小并将其累加到变量中。如果文件不存在,则输出错误消息。最后,我们显示所有文件的大小的总和。
相关问题
#!/bin/bash if [ $0=="*".sh ] then echo "这是一个脚本文件" else echo "这不是一个脚本文件" fi ~
这是一个简单的 Bash 脚本,但是该脚本有一些错误。正确的语法应该是:
```
#!/bin/bash
if [[ $0 == *.sh ]]; then
echo "这是一个脚本文件"
else
echo "这不是一个脚本文件"
fi
```
在条件判断语句中,应该使用双方括号 `[[` 和 `]]` 来包含条件表达式。此外,等号 `=` 左右两边应该留有空格。最后,`*` 应该放在句点之前,表示任意字符。
#!/bin/bash if [[ $0 == *.sh ]]; then echo "这是一个脚本文件" else echo "这不是一个脚本文件" fi 为什么无法实现
如果你在命令行中直接执行该脚本,可能会出现以下错误:
```
./test.sh: 行 1: #!/bin/bash: No such file or directory
```
这是因为该脚本中的第一行 `#!/bin/bash` 指定了解释器为 `/bin/bash`,而在你的系统上并不存在 `bash` 解释器。
如果你想要使用 `bash` 解释器来运行该脚本,需要确保该解释器已经安装在你的系统中。你可以使用 `which bash` 命令来查看 `bash` 解释器的路径,然后将第一行中的 `/bin/bash` 修改为实际的路径。
另外,如果你使用的是 Windows 系统,请确保你正在使用支持 Bash 脚本的终端,例如 Git Bash 或 Windows Subsystem for Linux。