我是多诺!我在Linux上学习bash。我是一个初学者,我需要一些对已经了解bash Linux的人来说非常基本的帮助。
我写了一个简单的脚本,但我遇到了一个问题。
我正在尝试设置一个变量,该变量可以检测我何时说“游戏”来告诉我“好游戏!”如果我再说什么,他会回答“日安!”
然而,当我尝试设置ca变量时,它并不起作用。我给你们留下了我的答案的截图。
顺便说一句,我不知道如何在Linux上复制/粘贴。(我想指定我在Windows上可以通过ssh访问Ubuntu 22.10版本中的Linux Linode)
PS**剧本是用法语写的,因为我说法语。我会尽我最大的努力为你翻译,所以请你放纵一下☺。
The Script
The Result
# !/bin/sh
name=Dono
user=$(whoami)
date=$(date)
whereamit=$(pwd)
echo "Yio $name, comment tu va?"
sleep 2
echo "Tu es connecter avec l'utilisateur $user."
sleep 1
echo "Nous sommes le $date."
sleep 2
echo "Que veux tu faire maintenant?"
read reponse
sleep 1
if ( reponse = jeux)
then
echo "Bon jeux!"
else
echo "Bonne journée!"
fi
1条答案
按热度按时间ubof19bj1#
脚本中有三个错误。
If语句需要方括号,而不是圆括号。
要引用变量“reponse”的值,必须使用**$reponse的形式引用它,或者更严格地说是${reponse}。
您还需要确保在表达式和方括号的元素周围留出空格。否则,字符串和相邻的方括号有时会集中在一起,导致语法错误。
除此之外,我建议您养成用双引号将字符串值括起来的习惯,这样,如果您的编辑器突出显示语法,它将更轻松地执行其工作。
此外,如果需要计算表达式(可能包括外壳逗号),则最好保留圆括号“(”,而您应该坚持使用花括号“{”,其中只引用所涉及的直接变量。如今,考虑到计算机的强大功能,这是一件小事,但它将提高整体性能。
此外,作为注解提供的引用ShellCheck对于帮助您纠正自己无法识别的错误非常有用,但我建议您养成一个习惯,首先尝试自己识别这些错误,以批判性的眼光检查您的代码,了解您试图如何处理表达式的每个元素,然后才使用辅助工具。这样,您可能会缩短学习曲线,并能够在第一次运行之前发现错误。
最后,我建议您为您不熟悉的任何新函数/语法创建一个测试脚本。它允许您专注于问题,并以受控的方式尝试不同的场景。