Tag: bash

如何从文件中读取变量?

我想在我的脚本中插入一个我将从文本文件中读取的值(字符串)。 例如,而不是: echo “Enter your name” read name 我想从另一个文本文件中读取一个字符串,因此解释器应该从文件中读取字符串而不是用户输入。

通过bash脚本添加用户帐户的正确方法

这是我现在使用的脚本代码: getent group $MYGROUP if [ $? -ne 0 ] ; then sudo su -c “groupadd $MYGROUP” fi sudo su -c “useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP” 这种方法在openSuse上运行良好。 但是它在Ubuntu上创建的用户帐户存在一些问题,所以我在这里寻求帮助。 未设置终端提示( echo $PS1返回任何内容) 箭头键和标签键在终端中无法正常工作 密码似乎不起作用(虽然我还不清楚这个问题到底是什么) 为这个新用户设置的/ etc / sudoers权限不受尊重 如果我用adduser手动创建用户(而不是useradd)我在Ubuntu上没有这些问题。 但我不能在openSuse(afaik)上使用adduser 。 因此,我需要一个非Debian独占的脚本或通过我的bash脚本添加用户帐户的方法,该脚本适用于Ubuntu(并且不会停止处理其他发行版)。 最后,我想了解adduser和useradd之间的区别 。 例如,我想知道adduser使用哪个骨架目录,因为这可能是useradd未按预期工作的原因(因为我刚刚接受了默认值)。 谢谢

‘su – ‘,’sudo bash’和’sudo sh’有什么区别?

我想知道它们之间有什么区别 su – sudo bash sudo sh 在做su -我不能以root身份登录su -因为我没有root密码 – 我的意思是我有我的用户密码,我可以sudo “command”但是这个密码对su -不起作用su -我可以用root用户登录sudo bash使用我的用户密码sudo bash ,我可以在执行sudo sh登录,但后来我在这个表单中得到一个命令提示符#

用Windows中的Xubuntu和xrdp来重击auto_completion

我正在使用Xubuntu并通过RemoteDesktop与Windows 7连接。 一切正常,但我的bash中的auto_completion不起作用。 我检查了我的主目录中的.bashrc文件以及/etc/bash.bashrc。 我在我的本地bashrc配置和bash.bashrc中推荐下面的行,但没有任何改变。 if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi

是否可以在Bash中为提示添加颜色?

是否可以在Bash中为提示(“user @ host:〜/ dir / $”)着色? 有些命令会产生大量输出,有时很难找到它的起始位置。 着色会有很大帮助。

获取Youtube频道所有video的观看链接

Youtubevideo可以单独观看,也可以是播放列表的一部分。 例: https://www.youtube.com/watch?v=vbsNiOkm0BU和 https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA 注意部分vbsNiOkm0BU 。 问题是为频道/播放列表的所有video获取此部分。 动机是下载此频道的所有video(约3600)。 但我没有成功使用youtube-dl下载。 所以我希望以一堆100个的forms下载它,作为一个例子。 如果我可以进一步提出这个问题,我可以编写一个bash脚本来仅下载播放列表的特定索引吗? 如果您看到以上链接: https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA 注意part &index=141 。 现在,如果做这样的事情: for i in {100..200} do youtube-dl https://www.youtube.com/watch?v=vbsNiOkm0BU&index=${i}&list=UUmM7KPLEthAXiPVAgBF6rhA done 注意part &index=${i} 。 由于vbsNiOkm0BU ,这是一次又一次地下载相同的video。 任何有关这方面的帮助将不胜感激。 谢谢。

“source x”,“有什么区别? Bash中的x“和”./x“?

我有一个bash源run.sh如下, #!/bin/bash if [ $# -ne 1 ]; then exit fi … 当我以两种方式执行它时,会有不同的行为。 第一种方式是, source run.sh 它将在执行后关闭终端。 第二种方式是, ./run.sh 这将简单地完成脚本运行,并留在终端上。 我问是否有一个命令退出source run.sh和./run.sh执行的bash脚本。 我也尝试过return ,但在./run.sh执行下效果不佳。 更一般地说,我感兴趣的是为什么会发生这种情况,以及使用“source”和“。”之间的区别。 用于脚本执行?

如何从桌面快捷方式执行sh脚本?

我试图创建一个登录我的ssh服务器的快捷方式: ssh xxxx 我做了以下文件: ssh_home.sh 使它可执行: sudo chmod +x ./ssh_home 通过右键单击属性检查它是否可执行,它是.. 但无论我做什么,当双击它时,它将启动gedit。 我试过“打开方式”,但没有显示终端应用程序。 我在网上搜索但只找到了链接到文件的方法,而没有将它集成到一个“快捷方式文件”中

如何将对话框输入定向到变量?

我一直在教自己bash脚本,并遇到了一个问题。 我编写了一个脚本来使用’read’命令从用户那里获取输入,并使该输入成为稍后在脚本中使用的变量。 该脚本有效,但…. 我希望能够使用“对话框”进行设置。 我发现 ‘dialog –inputbox’将输出定向到’stderr’,并且为了将该输入作为变量获取,您必须将其指向文件然后检索它。 我发现解释这个的代码是: #!/bin/bash dialog –inputbox \ “What is your username?” 0 0 2> /tmp/inputbox.tmp.$$ retval=$? input=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ case $retval in 0) echo “Your username is ‘$input'”;; 1) echo “Cancel pressed.”;; esac 我看到它正在使用2>将sdterr发送到/tmp/inputbox.tmp.$$,但输出文件看起来像’inputbox.tmp.21661’。 当我尝试捕捉文件时,它给了我一个错误。 所以我仍然无法将–inputbox中的用户输入作为变量。 示例脚本: echo ” What app would you like to remove? ” read […]

本地文件和AU答案之间的代码版本控制

介绍 请注意,这是一个“分享知识”的自我回答的问题。 在我的系统上下载与源代码(脚本)链接的Ask Ubuntu答案需要“仅限bash”脚本。 然后使用diff命令比较两者。 关键是要发现我的代码是否已被更改并且AU答案需要更新,或者有人修改了我发布的AU答案,我需要将这些更改滚动到我的代码中。