这看起来非常简单,但我已经搜遍过各种各样的方式并尝试了各种各样的方式。
我想要做的就是设置一个等于自身的变量除以常数:
喜欢:$ var4 = $ var4 / 27773173,绝不算数学。
#!/bin/bash
INPUT=file.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read var1 var2 var3 var4 var5
do
$var4 = $var4/27773173
/usr/bin/php ./command.php $var1 $var2 $var3 $var4 $var5
done < $INPUT
IFS=$OLDIFS
我想知道如何在bash和csh中做到这一点...谢谢!
答案 0 :(得分:1)
$var4 = $var4/27773173
应该像
(( var4 = var4 / 27773173 ))
或只是
(( var4 /= 27773173 ))
您可以进一步简化整个代码,并使用
进行分词,确保其安全#!/bin/bash
INPUT=file.csv
[[ ! -f $INPUT ]] && { echo "$INPUT file not found"; exit 99; }
while IFS=, read var1 var2 var3 var4 var5
do
# (( var4 /= 27773173 ))
echo "var4 = $var4" ## for debugging only
var4=$(echo "scale = 2; $var4 / 27773173" | bc)
echo "var4 (processed) = $var4" ## for debugging only
/usr/bin/php ./command.php "$var1" "$var2" "$var3" "$var4" "$var5"
done < "$INPUT"
答案 1 :(得分:0)
为了完整起见,您可以直接在csh中使用
执行此操作@ var= $var / 27773173
请注意显示的空格是必需的..这仅适用于整数
当心csh算术不遵循通常的操作顺序,因此我会避免任何远程复杂的事情。