在许多情况下,您可能希望提示用户输入一些内容,并且有几种方法可以实现这一点。这是其中一种方法
#!/bin/bash
echo Please, enter your name
read NAME
echo "Hi $NAME!"
作为一种变体,您可以使用 read 获取多个值,此示例可能会对此进行澄清。
#!/bin/bash
echo Please, enter your firstname and lastname
read FN LN
echo "Hi! $LN, $FN !"
在命令行(或 shell)中尝试这个
echo 1 + 1
如果您期望看到 '2',您会感到失望的。如果您希望 BASH 计算您拥有的一些数字怎么办?解决方案是这样
echo $((1+1))
这将产生更“符合逻辑”的输出。这是为了计算算术表达式。您也可以像这样实现它
echo $[1+1]$
如果您需要使用分数或更多数学运算,或者您只是想要这样做,您可以使用 bc 来计算算术表达式。
如果我在命令提示符下运行“echo $[3/4]$”,它将返回 0,因为 bash 在回答时只使用整数。如果您运行“echo 3/4|bc -l”,它将正确返回 0.75。
来自 mike 的消息(请参阅致谢)
您总是使用 #!/bin/bash .. 您可能想给出一个例子来说明
如何找到 bash 所在的位置。
首选 'locate bash',但并非所有机器都安装了 locate。
从根目录运行 'find ./ -name bash' 通常会起作用。
建议检查的位置
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/local/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash
(一时想不出任何其他目录... 我以前在不同的系统上的
大多数这些地方都找到过它)。
您也可以尝试 'which bash'。
在 bash 中,程序的返回值存储在一个名为 $? 的特殊变量中。
这说明了如何捕获程序的返回值,我假设目录 dada 不存在。(这也是 mike 建议的)
#!/bin/bash
cd /dada &> /dev/null
echo rv: $?
cd $(pwd) &> /dev/null
echo rv: $?
这个小程序显示来自所有数据库的所有表(假设您已安装 MySQL)。另外,请考虑更改 'mysql' 命令以使用有效的用户名和密码。
#!/bin/bash
DBS=`mysql -uroot -e"show databases"`
for b in $DBS ;
do
mysql -uroot -e"show tables from $b"
done
您可以使用命令 source 使用多个文件。
__待办事项__