
2. chmod +w `ls -l |grep [^.r........]`
chmod +r `ls -l |grep [^.-........]`
先占下楼层,空了慢慢给你做!先做第一题1月12日:
#!/bin/bash
echo this "date" :`date`
echo this "cal" :`cal`
echo this "pwd" :`pwd`
echo this "ls" : `ls`.
第二题1月12日:
这个没法写了撒 太笼统;建议翻翻书。
我列个环境变量的例子吧:
#!/bin/bash
echo "第二题":
TEST_DIR=/root
export $TEST_DIR
echo "环境变量TEST_DIR是/root".
第三题1月12日:
#!/bin/bash
echo "第三题for":
echo "3.1 for"
x=0
for ((i=1 i<101 i++))
do
x=$(($x+$i))
done
echo $x
echo "---------------------------------"
echo "第三题while":
echo "3.2 while"
x=0
i=1
while [ $i -lt 101 ]
do
i=$(($i+1))
x=$(($x+$i))
done
echo $x
第三题第二个
#!/bin/bash
echo "3.2"
function fib {
if [ $1 -lt 2 ]then
echo -n $1
else
local n_2=$(($1 - 2))
local n_1=$(($1 - 1))
local f_n_2=$(fib $n_2)
local f_n_1=$(fib $n_1)
local f_n=$((f_n_2 + f_n_1))
echo -n $f_n
fi
}
n=10
for ((i = 0i <$ni++))
do
printf "fib(%2d) = %d\n" $i $(fib $i)
done
恩,我也试了下,说说我的看法,3 (tableau_OS[2]=${tableau_OS[1]}) &(tableau_OS[1]=${tableau_OS[2]})
注意到两个赋值语句都有小括号,这在shell的执行过程中会单独看一个子shell来运行这两个赋值,但需要注意这两个赋值对父shell没有影响,也就是说tableau_OS[1],tableau_OS[2]的值在父shell中并没有改变,为了证明这一点,可以写下面这个脚本运行
#!/bin/sh
a=1
(a=2)
echo $a
结果输出为1。所以3的输出结果是对的
4.tableau_OS[2]=${tableau_OS[1]} &tableau_OS[1]=${tableau_OS[2]}如果你想表达并的意思,我觉得应该用&&而不是&,若用&&的输出结果为
Linux Windows Windows Linux~freeBSD
单独一个&是把命令放入后台执行的意思,而非并的意思,这样的话也能解释你的那个输出结果,因为赋值被放入后台,并不能把赋值返回父shell,所以相当于只执行了tableau_OS[1]=${tableau_OS[2]}
希望对你有帮助
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)