在第二个 bash 脚本中执行的 bash 脚本的键盘输入

keyboard input on bash scripts executed within 2nd bash script

我正在尝试下载文件并运行它使用以下脚本:

wget https://github.com/glenpike/npm-g_nosudo/archive/master.zip
unzip master.zip
cd npm-g_nosudo-master
./npm-g-no-sudo.sh
cd ../
rm -rf npm-g_nosudo-master
rm master.zip

下载的脚本暂停两次需要用户输入:

  1. 'enter' 按键
  2. 'y' 后跟 'enter'

如何在上面的脚本中包含这个输入?

如果下载的脚本只是从 stdin 读取,您可以简单地 echoprintf 输入:

echo -e "\ny\n" | ./npm-g-no-sudo.sh

或者:

printf "\ny\n" | ./npm-g-no-sudo.sh

在bash脚本中:https://github.com/glenpike/npm-g_nosudo/blob/master/npm-g-no-sudo.sh,你可以找到

read -p "Do you wish to update your .bashrc/.zshrc file(s) with the paths and manpaths? [yn] " yn

第 142 行,这意味着您在 运行 此 bash 脚本时需要输入一些内容。

因此,解决您的问题的一种方法是分叉此存储库并对其进行修改。