读取指定的文件行并从已占用该文件的单词创建新目录


for file in $*
head -n 1 $file | while read folder
do
mkdir $directory $folder
done

大家好,我的脚本有问题。我想做的是:从我指定的文件中读取第一行,并根据我从该文件中获取的单词在我指定的目录中创建新目录。

我收到这样的错误:

./scriptas: line 2: syntax error near unexpected token `head'
./scriptas: line 2: `head -n 1 $file | while read folder'

我的第二个问题:如何从命令行(腻子)$directory添加第二个变量?

示例我有带有文本的文件:

one two three
five seven nine eleven
okey

我需要脚本来获取第一行并创建目录"一"二"三"

您必须在

for/while 循环中的命令之前执行。

您的代码应如下所示:

#!/bin/bash
files=$*
for file in $files
do
head -n1 "$file" | while read dname
do
mkdir $dname
done
done

至于其他变量,简单的语法是 $ 符号后面的数字。

所以你可以做

files="$1"
directory="$2"

然后运行脚本

./script.sh "file1.txt file2.txt file3.txt" dir2

更复杂的解决方案包括getopts等。

更新了脚本。您可以通过以下方式使用它:script.sh "一.txt二.txt三.txt"德斯特迪尔

#! /bin/bash
for files in $1
do
    for i in $(head -n 1 $files)
    do
       if [ -z $2 ]
       then
           mkdir $i
       else
           mkdir $2/$i -p
       fi
    done
done

相关内容

  • 没有找到相关文章

最新更新