linux的zsh里 a=b.oas 怎么样才能使$a 表示b,而不是b.oas?
时间: 2023-08-06 14:05:31 浏览: 146
要使`$a`表示字符串`b`而不是`b.oas`,可以使用参数替换来截取`b.oas`中的部分字符串。在zsh中,您可以使用以下语法:
```bash
a="b.oas"
echo ${a:r}
```
`${a:r}`表示对变量`$a`进行参数替换,`:r`表示截取变量的扩展名(即文件名的部分)。这将返回字符串`b`。
因此,通过`${a:r}`,您可以得到变量`$a`的值为`b`,而不是`b.oas`。
相关问题
linux系统用zsh写一个判断,首先lay =(“a.oas” “b.oas” “c.gds”),当lay末尾三个字符是oas时,输出a,否则输出b
您可以使用以下代码来实现您的要求:
```bash
lay=("a.oas" "b.oas" "c.gds")
for i in "${lay[@]}"; do
if [[ "${i: -3}" == "oas" ]]; then
echo "a"
else
echo "b"
fi
done
```
这段代码首先定义了一个名为`lay`的数组,其中包含了三个字符串元素。然后,使用`for`循环遍历数组中的每个元素。在每次循环中,通过`${i: -3}`来获取当前元素的末尾三个字符,并与字符串"oas"进行比较。如果相等,则输出"a";否则,输出"b"。最终,您将得到对应每个元素的输出结果。
linux的zsh里 a=b.oas 怎么样才能使$a表示oas,而不是b.oas?
要使`$a`表示字符串`oas`而不是b.oas`,可以使用参数替换来截取`b.oas`中的部分字符串。在zsh中,您可以使用以下语法:
```bash
a="b.oas"
echo ${a[-3,-1]}
```
`${a[-3,-1]}`表示对变量`$a`进行参数替换,`[-3,-1]`表示截取变量的倒数第三个字符到倒数第一个字符的部分。这将返回字符串`oas`。
因此,通过`${a[-3,-1]}`,您可以得到变量`$a`的值为`oas`,而不是`b.oas`。
阅读全文