shell里面什么时候用$什么时候用${}
时间: 2023-10-11 15:06:47 浏览: 68
在shell脚本中,`$`和`${}`都是用来获取变量值的符号。一般来说,`$`符号用于获取简单变量的值,而`${}`符号则更加灵活,可以用于获取变量的值、对变量值进行替换、截取等操作。
下面是一些使用场景的例子:
1. 获取简单变量的值:
```shell
name="John"
echo $name
```
2. 在字符串中使用变量:
```shell
name="John"
echo "My name is $name"
```
3. 对变量值进行替换:
```shell
filename="example.txt"
echo ${filename/txt/log}
```
上面的例子中,`${filename/txt/log}`表示将`filename`变量的值中的`txt`替换为`log`,输出结果为`example.log`。
4. 对变量值进行截取:
```shell
filename="example.txt"
echo ${filename: -3}
```
上面的例子中,`${filename: -3}`表示从`filename`变量的值中截取最后3个字符,输出结果为`txt`。
综上所述,`$`和`${}`在一定程度上是可以互换的,但是`${}`符号更加灵活,能够实现更多的操作。
相关问题
shell单引号里面取变量
b'shell\xe5\x8d\x95\xe5\xbc\x95\xe5\x8f\xb7\xe9\x87\x8c\xe9\x9d\xa2\xe5\x8f\x96\xe5\x8f\x98\xe9\x87\x8f' 是一个 bytes 类型的变量,它表示了 shell 命令行中的一个单引号引用的变量。在使用这个变量的时候,需要先将 bytes 类型转换成字符串类型,然后再进行操作。在操作的过程中,需要注意编码的问题,否则可能会出现乱码问题。
shell脚本调用shell
可以使用fork或exec来调用shell脚本。其中,fork是最普通的方法,直接在脚本里面使用path/to/foo.sh来调用foo.sh这个脚本,比如如果是foo.sh在当前目录下,就是./foo.sh。运行的时候terminal会新开一个子Shell执行脚本foo.sh,子Shell执行的时候,父Shell还在。子Shell执行完毕后返回父Shell。子Shell从父Shell继承环境变量,但是子Shell中的环境变量不会带回父Shell。而exec则是直接在当前Shell中执行脚本,不会新开一个子Shell,执行完毕后也不会返回父Shell。以下是两种方法的示例:
1.使用fork调用shell脚本
```shell
path/to/foo.sh
```
2.使用exec调用shell脚本
```shell
exec path/to/foo.sh
```
阅读全文