141、用户在 shell 中输入以下内容:$ PATH=~/scripts $ ls ,命令 ‘ls’ 报错:ls: 未找到命令,原因是 ‘/bin’ 未包含在 PATH 环境变量中。那么什么命令可以将 PATH 的当前值与新目录 ~/scripts 合并?
PATH=$PATH:~/scripts
142、考虑以下脚本。注意它使用 elif 来检查第二个条件: #!/bin/bash fruit1 = Apples fruit2 = Oranges if [ $1 -lt $# ] then echo “This is like comparing $fruit1 and $fruit2!” elif [ $1 -gt $2 ] then echo ‘$fruit1 win!’ else echo “Fruit2 win!” done 。脚本中存在错误,请修复这些错误。
#!/bin/bash
fruit1=Apples
fruit2=Oranges
if [ $1 -lt $# ]; then
echo "This is like comparing $fruit1 and $fruit2!"
elif [ $1 -gt $2 ]; then
echo "$fruit1 win!"
else
echo "$fruit2 win!"
fi
143、编写一个简单的脚本,检查是否恰好传入了两个参数。如果是,则以相反的顺序打印这些参数。
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Error"
else
echo "$2 $1"
fi
144、在编程中,代码里使用 == 与使用 -eq 有何不同?
使用 == 会进行字符串比较,即如果两个变量的字符完全匹配,则条件为真;而 -eq 用于数字比较,判断两个数值是否相等。
字符串比较在测试数字时可能会导致意外结果,例如:
1+1 == 2 为 false
因为它是按字符串比较的。
145、编写一个简短的脚本,该脚本接受一个参数。如果传入了参数,检查该参数是否与当前目录的名称匹配。如果匹配,打印yes;否则,打印no。
#!/bin/bash
if [ "$1" == "$(basename $PWD)" ]; then
echo "yes"
else
echo "no"
fi
146、编写一个简单的脚本,检查是否恰好传入了两个参数。如果是,则按逆序打印这些参数。
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Error"
else
echo "$2 $1"
fi
147、用户在 shell 中输入以下内容:$ PATH=~/scripts $ ls ,随后系统提示 ‘ls: 未找到命令’ ,该命令 ‘ls’ 通常存于 ‘/bin/ls’ 。请问用户做了什么导致出现此提示?
用户用目录 ~/scripts 覆盖了 PATH 的内容。由于 ls 命令不在 PATH 中,所以无法找到该命令。
注意 :此更改仅影响当前会话,注销并重新登录将恢复更改。
148、用户在 shell 中输入以下内容:$ PATH=~/scripts $ ls ,命令 ‘ls’ 位于 ‘/bin/ls’,由于 ‘/bin’ 未包含在 PATH 环境变量中,无法找到该命令,出现 ‘ls: 未找到命令’ 的提示。什么命令可以将 PATH 的当前值与新目录 ~/scripts 合并?
PATH=$PATH:~/scripts
149、考虑以下脚本。该脚本使用 elif 来检查第二个条件:#!/bin/bash
fruit1 = Apples
fruit2 = Oranges
if [ $1 -lt $# ]
then
echo “This is like comparing $fruit1 and $fruit2!”
elif [$1 -gt $2 ]
then
echo ‘$fruit1 win!’
else
echo “Fruit2 win!”
done
标记为包含错误的行需要修复,请修正该脚本。
以下是修正后的脚本:
#!/bin/bash
fruit1=Apples
fruit2=Oranges
if [ $1 -lt $# ]; then
echo "This is like comparing $fruit1 and $fruit2!"
elif [ $1 -gt $2 ]; then
echo "$fruit1 win!"
else
echo "$fruit2 win!"
fi
主要修改点:
- 变量赋值时去掉等号两边的空格;
-
elif后条件判断的方括号左右要有空格; - 结束使用
fi而非done; - 单引号会使变量无法替换,将单引号改为双引号。
150、阅读以下 script1.sh 的内容:#!/bin/bash
if [ $# -lt 1 ]
then
echo “This script requires at least 1 argument.”
exit 1
fi
echo $1 | grep “^[A-Z] $” > /dev/null
if [ $? -ne 0 ]
then
echo “no cake for you!”
exit 2
fiecho “here’s your cake!”
exit 0
以下命令的输出是什么?
◦./script1.sh
◦echo $?
◦./script1.sh cake
◦echo $?
◦./script1.sh CAKE
◦echo $?
- 命令 : ./script1.sh
输出 *: This sc

最低0.47元/天 解锁文章
33

被折叠的 条评论
为什么被折叠?



