将命令行参数打印到新的Linux tex文件中

第一次问堆栈溢出问题。我是一名正在使用小型Linux待办事项列表应用程序的学生,在该应用程序中,用户可以使用以下命令创建新文件:

./todo add "hello world"

...,结果应为待办事项列表中的新文本文件,其文本为“ hello world”(或“”中的任何内容)。

到目前为止,我的工作:我的bash脚本add.sh创建一个新文件,将其添加到待办事项列表中,并重命名该列表中的所有项目以创建一个编号列表,如下所示:

1.txt 2.txt 3.txt

这是我的add.sh代码:

echo $2 >> newFile.txt. #creates a new file
mv newFile.txt ~/todoApp/usrMenu/todo #moves file to todo list
cd ~/todoApp/usrMenu/add && ./name.sh #renumbers all files in the todo list

但这是我的问题: 如何在命令行(“ hello world”)中将$ 2参数设置为新文件中的文本?

现在,当我整理新文件时,它是空白的。我想要的是让新文件读取“ hello world”。

谢谢!

yangguiping007 回答:将命令行参数打印到新的Linux tex文件中

问题出在您的./todo脚本中:

if [ $1 == "add" ]
then
  ./usrMenu/add/add.sh #calls add.sh
fi

您不会将参数从./todo传递到add.sh,因此$2中的add.sh将为空,并且与{{1}中的$2 }。要传递所有参数,可以使用todo

"$@"

或者,仅传递您关心的参数,该参数在脚本中将变为if [ "$1" == "add" ] then ./usrMenu/add/add.sh "$@" #calls add.sh and forwards all parameters fi (而不是“ $ 2”):

"$1"
本文链接:https://www.f2er.com/3140978.html

大家都在问