使用参数作为变量在shell(bash)中运行命令的问题!

时间:2010-10-12 10:01:10

标签: bash unix shell

(很抱歉混淆。我尝试简化实际问题时发生了以前的$符号。感谢您更正问题)

我想在下划线上拆分目录名(例如:dir_to_split =“my_test_dir”),如下所示:

my_dir=($dir_to_split)
var=$(echo $my_dir | awk -F"_" '{print $1,$2,$3}')   
set -- $var

splited_1=$1
splited_2=$2
splited_3=$3

现在使用这些splited_x导致我出错。离。

myprograme $splited_1 $splited_2 $splited_3

任何人都可以帮我这个吗?谢谢....

1 个答案:

答案 0 :(得分:1)

(更新后的问题重写。)

你得到什么样的错误?我发现在调试时将set -x添加到shell脚本的顶部很有用,这样shell就会打印它执行的所有命令,这样你就可以找到问题开始的行。

您确定$dir_to_split实际设置了吗?它是否包含空格或制表符?它是否包含两个下划线?我现在没有看到任何其他问题。

有分裂变量的shell内方法,例如:

dir="my_test_dir"
OIFS="$IFS"
IFS="-"
set --
IFS="$OIFS"

另见this SO question