首页 > 解决方案 > 如何将带有特殊字符和空格的参数传递给 C-Shell 脚本

问题描述

我正在编写一个通用命令执行器 shell 脚本 generic_script.csh 。基本上它包含:

#!/usr/bin/csh -f

foreach x ("$argv")
   $x 
end

用法:generic_script.csh "ls -l" "groups" "mkdir /tmp/abc"

预期输出:依次执行参数中的命令。

问题:当我在 foreach 循环中解析 $argv 时,

  1. 如果我使用$argv,参数由空格分隔:
ls
-l
groups
mkdir
/tmp/abc
  1. 如果我使用"$argv", $x 具有ls -l groups mkdir /tmp/abc价值。

如何根据“”拆分参数,即

ls -l
groups
mkdir /tmp/abc

提前致谢!

标签: shellargumentsparameter-passingspecial-characterscsh

解决方案


推荐阅读