如何使用git bash从我的机器创建新的存储库?
我按照以下步骤操作:
mkdir ~/Hello-World
cd ~/Hello-World
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin https://github.com/username/Hello-World.git
git push origin master
Run Code Online (Sandbox Code Playgroud)
但是我得到了"致命的错误:你在服务器上运行了update-server-info吗?"
我只想针对特定的mongodb数据库运行.js脚本,但似乎无法获得正确的语法.
echo "print(db.address.find().limit(1));" > test.js
mongo test.js
Run Code Online (Sandbox Code Playgroud)
如何选择将要执行的数据库,我尝试了各种组合,但use foo没有成功.
> show dbs
admin (empty)
local (empty)
foo 0.203125GB
bar 0.203125GB
Run Code Online (Sandbox Code Playgroud)
我想foo在这种情况下使用.
编辑:命令替换对于令人惊讶的行为不是必需的,尽管它是最常见的用例.同样的问题适用于echo "'!b'"
b=a
# Enable history substitution.
# This option is on by default on interactive shells.
set -H
echo '!b'
# Output: '!b'
# OK. Escaped by single quotes.
echo $(echo '!b')
# Output: '!b'
# OK. Escaped by single quotes.
echo "$(echo '$b')"
# Output: '$b'
# OK. Escaped by single quotes.
echo "$(echo '!b')"
# Output: history expands
# BAD!! WHY??
Run Code Online (Sandbox Code Playgroud)
!什么?echo "$(echo '$b')"呢?!和之间有什么区别$?echo $(echo …我不能为我的生活弄清楚如何逃避!Bash中的角色.例如,我想打印这个:
Text text text!
我试过这个:
echo "Text text text\!"
Run Code Online (Sandbox Code Playgroud)
但是这会打印出来:
Text text text\!
(带有额外的反斜杠).
我怎样才能做到这一点?
以下失败,我不明白为什么:
$ echo "#!"
Run Code Online (Sandbox Code Playgroud)
以下也失败并出现相同的错误消息:
$ echo "\#!"
Run Code Online (Sandbox Code Playgroud)
错误信息:
-bash: !": event not found
Run Code Online (Sandbox Code Playgroud)
为什么会失败?该怎么echo办呢?
我通过提供输入作为命令行在linux中运行我的应用程序.我的输入字段包含一个在内部包含";"(分号)的参数(例如:123; 434; 5464).这将使用UTF8String编码和发送进行解析.但是,当我这样使用时,我最初会得到,
bash: 434: command not found
bash: 5464: command not found
Run Code Online (Sandbox Code Playgroud)
当我捕获流量时,输出仅包含123而不是123; 434; 5464但是如果我不使用分号(例如:123:434:5464),则不会出现任何问题输出正确显示为123:434:5464
指出如何使用分号来输出命令行输入.使用分号时是否有任何特定的语法.我跑得像下面
./runASR.sh -ip 10.78.242.4 -port 3868 -sce 10.78.241.206 -id 85;167838865;1385433280
Run Code Online (Sandbox Code Playgroud)
其中-id字段包含有问题的值.
在bash中,当我运行以下命令时:
sh -c "command"Run Code Online (Sandbox Code Playgroud)
是否创建了一个子shell然后command执行?
我的猜测是命令将在当前的shell中运行,但我不确定.这个猜测来自我已经使用以下命令测试的事实:
echo $BASHPID, $BASH_SUBSHELL
Run Code Online (Sandbox Code Playgroud)
和
sh -c "echo $BASHPID, $BASH_SUBSHELL"
Run Code Online (Sandbox Code Playgroud)
结果是一样的.但是,有人告诉我这可能有点误导,因为在执行命令之前可能会替换变量.这是真的吗?
在bash中:
echo "*" #Globbing is never done
echo "$variable" # Variable expansion is always done
echo "$(command)" # command expansion is always done
Run Code Online (Sandbox Code Playgroud)
echo '*' #Globbing is never done
echo '$variable' # Variable expansion is never done
echo '$(command)' # command expansion is never done
Run Code Online (Sandbox Code Playgroud)
echo * #Globbing always done.
echo $variable; # Variable expansion is always done
echo $(command) # command expansion is always done
Run Code Online (Sandbox Code Playgroud)
这适用于所有命令吗?
如何修改我的用户PROFILE文件以将我创建的脚本文件夹附加到PATH变量的末尾?
我不完全确定这意味着什么.谁能解释一下.
谢谢 :)
我惊讶地发现单引号版本与正则表达式一样工作.我现在看到的唯一真正的区别是双引号扩展了正则表达式模式中的变量.还有什么我想念的吗?
bash ×6
linux ×3
shell ×3
command-line ×1
echo ×1
git-bash ×1
github ×1
github-api ×1
grep ×1
mongo-shell ×1
mongodb ×1
quotes ×1
regex ×1
solaris ×1
syntax ×1
ubuntu-12.04 ×1
unix ×1