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