我试图在Bash脚本中划分两个图像宽度,但bash给出0了结果:
RESULT=$(($IMG_WIDTH/$IMG2_WIDTH))
Run Code Online (Sandbox Code Playgroud)
我研究了Bash指南,我知道我应该使用它bc,在他们使用的互联网的所有例子中bc.在echo我试图把同样的东西放在我的,SCALE但它没有奏效.
以下是我在教程中找到的示例:
echo "scale=2; ${userinput}" | bc
Run Code Online (Sandbox Code Playgroud)
我怎么能让Bash给我一个漂浮0.5?
我有一个shell脚本,我想用shUnit测试.脚本(和所有功能)都在一个文件中,因为它使安装更容易.
示例 script.sh
#!/bin/sh
foo () { ... }
bar () { ... }
code
Run Code Online (Sandbox Code Playgroud)
我想编写第二个文件(不需要分发和安装)来测试中定义的函数 script.sh
就像是 run_tests.sh
#!/bin/sh
. script.sh
# Unit tests
Run Code Online (Sandbox Code Playgroud)
现在的问题在于.(或source在Bash中).它不仅解析函数定义,还执行脚本中的代码.
由于没有参数的脚本没有任何坏处,我可以
. script.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
但如果有更好的方法来实现我的目标,我就会徘徊.
编辑
我建议的解决方法在源脚本调用的情况下不起作用,exit所以我必须捕获退出
#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
...
}
. script.sh
Run Code Online (Sandbox Code Playgroud)
run_tests调用该函数但是只要我重定向source命令的输出,脚本中的函数就不会被解析,并且在陷阱处理程序中不可用
这有效,但我得到的输出script.sh:
#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
function_defined_in_script_sh
}
. script.sh
Run Code Online (Sandbox Code Playgroud)
这不打印输出但是我得到一个错误,该函数未定义:
#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
function_defined_in_script_sh
}
. script.sh …Run Code Online (Sandbox Code Playgroud) 我试图逐行读取输入文件,其中包含由句点分隔的字段.我想将它们放入一个数组数组中,以便稍后我可以循环它们.输入似乎没问题,但是将它"推"到数组(inData)似乎不起作用.
代码如下:
Input file:
GSDB.GOSALESDW_DIST_INVENTORY_FACT.MONTH_KEY
GSDB.GOSALESDW_DIST_INVENTORY_FACT.ORGANIZATION_KEY
infile=${1}
OIFS=$IFS
IFS=":"
cat ${infile} | while read line
do
line=${line//\./:}
inarray=(${line})
# echo ${inarray[@]}
# echo ${#inarray[@]}
# echo ${inarray[0]}
# echo ${inarray[1]}
# echo ${inarray[2]}
inData=("${inData[@]}" "${inarray[@]}")
done
IFS=$OIFS
echo ${#inData[@]}
for ((i = 0; i < ${#inData[@]}; i++))
do
echo $i
for ((j = 0; j < ${#inData[$i][@]}; j++))
do
echo ${inData[$i][$j]}
done
done
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种简单的方法在Bash中将十进制数转换为二进制数.我有需要转换的变量:
$ip1 $ip2 $ip3 $ip4
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以在不查看每个数字的情况下执行此操作?
我宁愿不要写很多代码.
我试图编写一个程序来看看计数是否能被 2 整除而没有余数这是我的程序
count=$((count+0))
while read line; do
if [ $count%2==0 ]; then
printf "%x\n" "$line" >> file2.txt
else
printf "%x\n" "$line" >> file1.txt
fi
count=$((count+1))
done < merge.bmp
Run Code Online (Sandbox Code Playgroud)
该程序并非每次进入真实状态时都有效