如何修改我的用户PROFILE文件以将我创建的脚本文件夹附加到PATH变量的末尾?
我不完全确定这意味着什么.谁能解释一下.
谢谢 :)
我需要回显一些文字。喜欢text "hey"
如果我尝试将代码echo "text "hey""输出为text hey
那么,如何显示双引号呢。谁能帮我这个。
我知道已经有一些关于此错误的帖子,但我找不到适合我的问题的答案:
我使用以下命令创建了一个AES密钥:
keytool -genseckey -alias TEST -keyalg AES -keysize 128 -storepass "a#b$c<d>"
-storetype JCEKS -keystore /usr/my/path/test.jck
Run Code Online (Sandbox Code Playgroud)
然后我尝试从java代码访问密钥库:
String password = "a#b$c<d>";
char[] passwordChars= password.toCharArray();
// loading the file containing the key
InputStream inputStreamFichierCle;
try {
inputStreamFichierCle = new FileInputStream(filePath);
keyStore.load(inputStreamFichierCle, passwordChars);
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个IOException : keystore was tampered with or password was incorrect.
请注意,我尝试使用普通密码(例如:传递),这很有效,所以我想这里的问题与我在密码中使用的特殊字符有关.
发生了什么,我该如何解决这个问题?
我在GNU bash,版本4.3.11.
假设我想在文件上打印唯一的行.我正在使用这种方法,它适用于文件:
$ cat a
9
10
9
11
$ awk '!seen[$0]++' a
9
10
11
Run Code Online (Sandbox Code Playgroud)
但是,如果我从stdin获取输入,在多行中使用双引号并输入到awk,则会失败:
$ echo "9
> 10
> 9
> 11" | awk '!seen[$0]++'
bash: !seen[$0]++': event not found
Run Code Online (Sandbox Code Playgroud)
也就是说,bash尝试扩展命令seen,这当然不知道,因为它是一个变量名.但它不应该发生,因为命令放在单引号内.
echo单引号,多行输入效果很好:
$ echo '9
> 10
> 9
> 11' | awk '!seen[$0]++'
9
10
11
Run Code Online (Sandbox Code Playgroud)
有趣的是,它也适用于双引号的单行输入:
$ printf "9\n10\n9\n11" | awk '!seen[$0]++'
9
10
11
Run Code Online (Sandbox Code Playgroud)
我想知道为什么Bash试图扩展历史,如果它发生在多线输入后,即使命令本身使用单引号.
其他考虑:
中间有一个管道也无法修复它:
$ echo "9
> 10
> 9
> 11" | cat - …Run Code Online (Sandbox Code Playgroud) 我试图了解角色密码应该如何在 Postgres 中运行。
https://www.postgresql.org/docs/current/static/sql-createrole.html表示 ENCRYPTED / UNENCRYPTED
如果提供的密码字符串已经是 MD5 加密格式,那么它会按原样加密存储,
所以我未加密的密码是: MyPassword 。
“MyPassword”的 MD5 哈希值为 48503dfd58720bd5ff35c102065a52d7
如果我做
-- See https://www.postgresql.org/docs/9.6/static/sql-alterrole.html
ALTER ROLE "MeOhMy"
LOGIN
PASSWORD '48503dfd58720bd5ff35c102065a52d7'
;
Run Code Online (Sandbox Code Playgroud)
然后在做的时候尝试使用“MyPassword”
sudo -u postgres psql meohmy -h 127.0.0.1 -d meohmy_development
Run Code Online (Sandbox Code Playgroud)
当然,我首先被提示输入我的 sudo 密码,然后我被 Postgres 提示“我的密码”
如果我输入 MyPassword 我得到
FATAL: password authentication failed for user "ralph@dos32.com"
Run Code Online (Sandbox Code Playgroud)
如果我输入 48503dfd58720bd5ff35c102065a52d7,则我可以登录。
我不明白什么?
在 Bash 脚本中将字符串内容放在引号中是否重要?考虑以下两个变量:
str1=hei
str2="Hi"
Run Code Online (Sandbox Code Playgroud)
bash 中首选上述哪种定义字符串文字的方法?为什么?
我想做类似以下的事情:
#!/bin/bash
cmd="find . -name '*.sh'"
echo $($cmd)
Run Code Online (Sandbox Code Playgroud)
我期望它会显示当前目录中的所有shell脚本文件,但什么也没发生.
我知道我可以根据这篇文章解决eval的问题
#!/bin/bash
cmd="find . -name '*.sh'"
eval $cmd
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么命令替换在这里不起作用,$(...)和eval在问题方面的区别是什么?
我有这样的awk声明:
glb_library="my_library"
awk "
/^Direct Dependers of/ { next }
/^---/ { next }
/^$glb_library:/ { ver=\$0; next }
{ gsub(/[[:space:]]/, '', \$0); print ver':'\$0 }
" file
Run Code Online (Sandbox Code Playgroud)
基本上,我已将awk代码括在双引号中,以便glb_library扩展shell变量.我已经确保逃避$角色以防止外壳扩展$0.遵循这里的指导.
awk 给我这个错误:
awk: syntax error at source line 5
context is
{ gsub(/[[:space:]]/, >>> ' <<<
Run Code Online (Sandbox Code Playgroud)
我想明白:
awk?为什么''不是像空字符串一样""?awk区别对待单引号和双引号?在我用反斜杠转义单引号并用来\"\"表示空字符串而不是代码之后,我的代码工作''.
我有一个包含一些数据的文件,我只想将第一列用作脚本的标准输入,但提取时遇到了麻烦。我尝试使用这个
awk -F"\t" '{print $1}' inputs.tsv
Run Code Online (Sandbox Code Playgroud)
但只显示第一列的首字母。我尝试了其他一些方法,但是它要么显示整个文件,要么仅显示第一列的第一个字母。
我的文件如下所示:
Harry_Potter 1
Lord_of_the_rings 10
Shameless 23
....
Run Code Online (Sandbox Code Playgroud) 我的bash脚本有这个奇怪的问题.我编译boost作为其中的一部分.脚本调用如下所示:
./b2 --reconfigure ${PARALLEL} link=static cxxflags=-fPIC install boost.locale.iconv=off boost.locale.posix=off -sICU_PATH="${ICU_PREFIX}" -sICU_LINK="${BOOST_ICU_LIBS}" >> "${BOOST_LOG}" 2>&1
Run Code Online (Sandbox Code Playgroud)
该命令非常有效.日志文件显示它发现ICU没有问题.但是,如果我将其更改为从变量运行,它将不再找到ICU(但它仍会编译其他所有内容):
bcmd="./b2 --reconfigure ${PARALLEL} link=static cxxflags=-fPIC install boost.locale.iconv=off boost.locale.posix=off -sICU_PATH=\"${ICU_PREFIX}\" -sICU_LINK=\"${BOOST_ICU_LIBS}\""
$bcmd >> "${BOOST_LOG}" 2>&1
Run Code Online (Sandbox Code Playgroud)
有什么不同?我希望能够使用第二种方法,以便我可以在运行之前将命令传递给另一个函数.