Выход
echo $var
сильно зависит от значения переменной IFS
. По умолчанию он содержит символы пробела, табуляции и новой строки:
[ks@localhost ~]$ echo -n "$IFS" | cat -vte
^I$
Это означает, что когда оболочка выполняет разделение поля (или разбиение слов), он использует все эти символы в качестве разделителей слов. Это то, что происходит при ссылке на переменную без двойных кавычек, чтобы повторить его ($var
) и, таким образом, ожидается выход меняется.
Один из способов предотвратить разбиение слов (помимо использования двойных кавычек), чтобы установить IFS
к null. См http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_05 :
Если значение IFS имеет нулевое значение, не поле расщепление должно быть выполнено
Установка на нуль означает, что установка на пустое значение:.
IFS=
Тест:
ч>[ks@localhost ~]$ echo -n "$IFS" | cat -vte ^I$ [ks@localhost ~]$ var=$'key\nvalue' [ks@localhost ~]$ echo $var key value [ks@localhost ~]$ IFS= [ks@localhost ~]$ echo $var key value [ks@localhost ~]$
Я думаю, вам нужно использовать камеру и видовое окно:
OrthographicCamera hudCamera = new OrthographicCamera();
Viewport hudViewport = new ScreenViewport(hudCamera);
public void create {
// Your code
hudViewport.apply(true);
}
public void render(float delta){
Gdx.gl.glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(hudCamera.combined);
batch.begin();
splash.draw(batch);
batch.end();
}
public void resize(int width, int height) {
hudViewport.update(width, height);
hudViewport.apply(true);
}
Убедитесь, что вы задаете правильный размер в своем основном методе.