The Bash scripting language supports operating variables in Linux. However, if you have development experience in other popular programming languages, using Bash to handle variables may be error-prone. This is because its syntax is different from other languages (and even a little strange to some developers).
This article will provide you with 5 practical tips based on my experience. After reading it, it can help you avoid unnecessary mistakes.
For many languages, such as Python, adding spaces around the equal sign is a good practice because it improves the readability of the code.
But in Bash, no extra spaces should be added when defining variables.
For example, if I declare a variable named name
like this:
name = "Yang"
There will be an error here:
-bash: name: command not found
As you can see above, Bash treats name
as a command rather than a variable because I added unnecessary spaces.
Therefore, the correct way to define variables is as follows:
name="Yang"
Defining an array in Bash is not difficult. We just need to use a pair of brackets to enclose all elements, as shown in the following example:
names=("Yang" "Elon" "Bill")
As the saying goes, "Details determine success or failure." I made a critical mistake while writing a Bash script before. I habitually use commas (not spaces) to separate each element in the array.
names=("Yang","Elon","Bill")
Bash does not treat commas as separators, and there is only one element in the names
array, Yang,Elon,Bill
instead of the expected three.
When we declare a variable in Bash, there are 3 options for using quotes:
By default, every value in Bash is a string. So if no spaces are required, we don't need to use any quotes. (Again, it's a bit different from other languages, where you can't define a string without quotes)
When you need to use quotes, please note the difference between single quotes and double quotes.
For example, let us declare 3 variables as shown below. So, what is the difference between truth1
and truth2
?
如果你打印它们,你会看到 truth1
是 ${name} is amazing.
。而 truth2
是 Yang is amazing.
。
总而言之,一对单引号内的字符串将始终被解释为它的本身。
在 Bash 中,我们可以将命令的结果保存到变量中。有两种可能的方法来做到这一点:
variable=
command“variable=$(command)
例如,要保存 ls
命令的结果,我们可以这样写:
file_list=`ls`
或者
file_list=$(ls)
但是,这里的最佳实践始终是使用第二种方法,尤其是在编写较长的脚本时。因为反引号和单引号看起来很相似,有时你可能会混淆它们。
一些名称在 Linux 中被预定义为环境变量,如 USER
、HOME
、PATH
等。我们可以使用 printenv
命令列出它们。
显然,我们不应该用与环境变量相同的名称来声明我们的变量。
好消息是 Linux 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。
The above is the detailed content of 5 common pitfalls about variables in the Linux Bash Shell. For more information, please follow other related articles on the PHP Chinese website!