在Shell脚本中,可以使用read
命令结合IFS
环境变量来按空格分割一个命令,并且允许使用引号将多个单词的参数括起来。下面是一个示例代码:
#!/bin/bash
# 读取命令
read -rp "请输入命令: " command
# 使用IFS环境变量将命令按空格分割成数组
IFS=' ' read -ra args <<< "$command"
# 遍历数组执行命令
for arg in "${args[@]}"; do
echo "参数: $arg"
done
在这个示例中,首先使用read
命令读取用户输入的命令,并将其存储在command
变量中。然后,使用IFS
环境变量将command
按空格分割成数组args
。最后,使用循环遍历数组,并输出每个参数。
以下是示例运行的结果:
请输入命令: echo "Hello, World!"
参数: echo
参数: Hello,
参数: World!
在用户输入echo "Hello, World!"
后,命令被按空格分割成了三个参数echo
、Hello,
和World!
。