Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bash脚本计算HP-UX大小_Bash_Hp Ux - Fatal编程技术网

使用bash脚本计算HP-UX大小

使用bash脚本计算HP-UX大小,bash,hp-ux,Bash,Hp Ux,我试图在HP-UX上以人类可读的形式显示大小。我们有一些用于sftp传输的遗留系统。这些服务器通过T1专线连接,传输速度非常慢。我必须偶尔检查尺寸,以验证是否完成了传输。 由于HP-UX无法以kb或GB为单位显示大小,因此我们必须手动分割输出以进行验证。 我只是尝试构建一个小脚本,以GB为单位显示大小 read -p "Enter File Path/Location " location output=$(ls -l $location | cut -d ' ' -f 18

我试图在HP-UX上以人类可读的形式显示大小。我们有一些用于sftp传输的遗留系统。这些服务器通过T1专线连接,传输速度非常慢。我必须偶尔检查尺寸,以验证是否完成了传输。 由于HP-UX无法以kb或GB为单位显示大小,因此我们必须手动分割输出以进行验证。 我只是尝试构建一个小脚本,以GB为单位显示大小

read -p "Enter File Path/Location " location
output=$(ls -l $location | cut -d ' ' -f 18)
#output=$(ls -l /central/home/sftp/file.daily | cut -d ' ' -f 18)
echo "Size in GB is:  ${output}"
#echo "Size in GB is:  ${output} / (1024*1024*1024)"  not working "

bash-4.4$ ./script
Enter File Path/Location /central/home/sftp/file.daily
Size in GB is:  153844074
bash-4.4$ 

各位,我不是专业人士,只是学习一些东西来增强我对bash脚本的知识。

您的命令
echo“GB大小为:${output}/(1024*1024*1024)”
不起作用,因为表达式只是一个字符串。要在bash中进行计算,请使用算术上下文
$(…)
。但是,
bash
无法处理浮点数,因此我会求助于
bc

而且,
ls | cut-f 18
似乎有点奇怪。这将检索第18个字段。my
ls-l
的输出只有9个字段,文件大小是第5个字段。
您可以解析
du
,而不是解析
ls
,这更简单,更不容易出错
du-k
以kB(=1024字节)为单位打印大小

将此脚本存储在可执行文件中,然后将其用作

bash$ path/to/myscript.sh someFile
File someFile has size 12.3 GB
通过将文件名作为参数传递,可以使用制表符完成。这在
读取时是不可能的

bash$ path/to/myscript.sh someFile
File someFile has size 12.3 GB