Shell 命令替换

Shell 命令替换

在 Shell 脚本中,命令替换是一种将命令的输出作为另一个命令的参数或变量值的方法。命令替换有两种语法:

  1. 反引号(`command`
  2. $() 语法($(command)

反引号语法

1
2
output=`echo "Hello, World!"`
echo $output

$() 语法

1
2
output=$(echo "Hello, World!")
echo $output

示例

以下是一些使用命令替换的示例:

示例 1:将命令输出赋值给变量

1
2
current_date=$(date)
echo "Current date and time: $current_date"

示例 2:将命令输出作为另一个命令的参数

1
2
files=$(ls)
echo "Files in the current directory: $files"

示例 3:嵌套命令替换

1
2
nested_output=$(echo $(date))
echo "Nested command output: $nested_output"

注意事项

  • 使用 $() 语法比反引号语法更推荐,因为它更易读且支持嵌套。
  • 命令替换会捕获命令的标准输出,但不会捕获标准错误输出。
  • 如果命令输出包含换行符,可以使用 IFS(内部字段分隔符)来处理多行输出。

示例:处理多行输出

1
2
3
4
5
output=$(ls)
IFS=$'\n' # 设置内部字段分隔符为换行符
for file in $output; do
echo "File: $file"
done

Shell 命令替换
https://linhanmic.github.io/2024/09/14/Shell命令替换/
作者
Linhanmic
发布于
2024年9月14日
更新于
2024年9月14日
许可协议